点击发送按钮报错,无法获取access token与refresh token,返回invalid_grant错误
解决获取Access/Refresh Token时的
invalid_grant错误 以下是排查和解决该错误的常见思路:
检查授权凭证的有效性
invalid_grant最常见的诱因是使用了过期、已被撤销或者格式错误的授权码(authorization code)。如果采用密码模式获取token,要确认用户名、密码未输入错误,也未被修改过。划重点:授权码基本为一次性使用,用过一次就会失效,不要重复提交同一个code。
核对客户端信息
确认请求中的client_id和client_secret与OAuth2服务端注册的信息完全一致,包括大小写、特殊字符——很多时候都是复制时多了空格导致匹配失败。检查请求参数的完整性与格式
确保请求包含所有必填参数,且格式合规:- 授权码模式:必须携带
grant_type=authorization_code、code=你的授权码、redirect_uri=回调地址(该地址必须与获取授权码时使用的完全一致) - 密码模式:必须携带
grant_type=password、username=用户名、password=密码
另外,redirect_uri需要做URL编码,不能包含非法字符。
- 授权码模式:必须携带
确认令牌端点地址正确
检查请求的token接口URL是否准确,是否使用了HTTPS(大部分正规OAuth2服务要求HTTPS),避免请求到错误地址导致无效响应。排查服务端侧的限制
部分服务端会对客户端的请求频率、绑定IP做限制,或者用户账号存在锁定等异常情况,此时可以查看服务端日志,确认是否触发了相关限制策略。
内容的提问来源于stack exchange,提问作者64-Vishal Yadav
相关产品推荐
相关产品推荐

