使用authorization_code流获取Salesforce令牌遇invalid_grant错误求助
Salesforce Auth Code流invalid_grant错误排查方案
确认授权码有效性
授权码仅能使用一次,且有效期为15分钟。检查当前使用的auth_code是否为最新获取、未重复使用的有效码。严格匹配redirect_uri
请求令牌时的redirect_uri必须与获取授权码时的地址完全一致,包括大小写、末尾斜杠、附加参数等细节。比如授权时用https://your-app.com/callback,请求令牌时不能写成https://your-app.com/Callback或https://your-app.com/callback/。校验PKCE参数(若启用)
如果使用了PKCE:- 确保
code_verifier与生成code_challenge的原始值完全一致,code_challenge需是code_verifier的SHA256哈希值再做Base64URL编码的结果。 - code_verifier长度需在43-128位之间,仅包含字母、数字、
-、.、_、~字符。
- 确保
移除冲突的认证头
你的请求同时在data中传递了client_id和client_secret,又在headers里添加了Authorization: Basic ...,这两种认证方式二选一即可。建议删除headers中的Authorization字段,仅保留Content-Type: application/x-www-form-urlencoded,避免认证逻辑冲突。检查Connected App配置
- 确认Connected App的OAuth范围已包含
api等必要权限,缺失权限会导致认证失败。 - 检查回调URL列表中是否已添加当前使用的
redirect_uri,Salesforce仅允许使用预配置的回调地址。 - 再次确认IP限制是否完全取消或请求IP在允许范围内,部分场景下IP限制配置可能未即时生效。
- 确认Connected App的OAuth范围已包含
排查用户账号状态
确认用于授权的Salesforce用户账号未被锁定、禁用,且该用户已授权过此Connected App(可在用户的「Connected Apps OAuth Usage」中查看记录)。
内容的提问来源于stack exchange,提问作者Sasha Marinskiy
相关产品推荐
相关产品推荐

