Coinbase API Key 鉴权报错invalid api key问题求助
Coinbase API 鉴权报错invalid api key 排查方案
对应错误返回:
{"errors":[{"id":"authentication_error","message":"invalid api key"}]}
1 密钥基础配置校验
- 核对粘贴的API Key、API Secret没有首尾空格、换行、遗漏字符,Coinbase API Secret仅在创建时展示一次,需确认使用的是创建时保存的完整原始值,不要使用二次复制的截断内容。
- 确认API密钥的权限配置匹配业务需求:创建密钥时需勾选对应操作的权限(如读取账户信息需勾选
read权限、发起转账需勾选send权限),权限未开启会触发鉴权错误。 - 确认环境匹配:Coinbase沙箱环境和正式生产环境的密钥完全独立,若代码请求的是正式接口却使用了沙箱密钥,或反之,必然返回无效密钥错误。可先调用基础的用户信息接口做连通性测试,测试代码如下:
<?php require_once( __DIR__ . '/CoinBaseApi/vendor/autoload.php'); use Coinbase\Wallet\Client; use Coinbase\Wallet\Configuration; $apiKey='你的实际API Key'; $apiSecret='你的实际API Secret'; $configuration = Configuration::apiKey($apiKey, $apiSecret); $client = Client::create($configuration); // 测试连通性代码 try { $user = $client->getCurrentUser(); print_r($user); } catch (Exception $e) { echo "错误信息:".$e->getMessage(); echo "响应原文:".$e->getResponse()->getBody(); } ?>
2 运行环境校验
- 确认服务器时间同步:Coinbase鉴权要求请求时间戳与官方服务器时间差不得超过30秒,服务器时间偏差过大时生成的签名会失效,也会被判定为无效密钥。Linux服务器可执行
ntpdate pool.ntp.org同步系统时间。 - 检查IP白名单配置:若创建API密钥时开启了IP白名单限制,仅白名单内的IP发起的请求会被放行,需确认服务器公网IP已加入白名单,可临时关闭白名单测试验证是否为该问题导致。
3 依赖包校验
- 确认使用的Coinbase PHP SDK为官方最新版本,旧版本SDK可能使用过时的签名规则导致鉴权失败。执行
composer show coinbase/coinbase查看当前版本,低于3.0版本建议执行composer update coinbase/coinbase升级。 - 确认没有在代码中修改SDK默认的请求域名、签名逻辑,自定义修改会导致签名不匹配。
内容的提问来源于stack exchange,提问作者Shah Newaz
相关产品推荐
相关产品推荐

