我一直在实现 Google 网络服务器 OAuth 流程,但是当我尝试用访问 token 交换授权代码时,它总是提示“invalid_code”。
问题是这样的:
第 1 步:
第 2 步:
重定向发生,谷歌将重定向到我们的网址 https://myurl.com/callback?code=somecode
第 3 步:
curl -X POST --data "code=somecode&client_id=some_client_id&some_client_secret=some_client_secret&redirect_uri= https://myurl.com/callback&grant_type=authorization_code "https://accounts.google.com/o/oauth2/token -v --trace-ascii/dev/stout
响应返回:
HTTP 400 错误请求
{ “错误”:“无效的授权”, "error_description": "代码无效。" }
有人可以帮我解决这个问题吗?谢谢!
最佳答案
授权码的有效期只有10分钟,且只能使用一次。因此,请执行以下检查:
- 10分钟后您还会使用它吗?如果是这样,请在 10 分钟内使用它。
- 您以前用过吗?如果是这样,请获取一个新的,然后使用它。
- 您的服务器时间与 Google OAuth 服务器的时间同步吗?如果没有,请更改时间。
关于oauth - Google OAuth token 交换返回 invalid_code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002970/