我一直在实施Google网络服务器OAuth流程,但当我尝试使用访问令牌交换授权代码时,它总是会抱怨" invalid_code"。
问题在于:
第1步:
将我们的某个网页重定向到' https://accounts.google.com/o/oauth2/auth?scope=email&redirect_uri=https%3A%2F%2Fmyurl.com%2Fcallback&response_type=code&client_id=some_client_id'
第2步:
重定向发生,谷歌会重定向到我们的网址 https://myurl.com/callback?code=somecode
第3步:
卷曲-X POST - 数据"代码= 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错误请求
{ "错误" :" invalid_grant", " ERROR_DESCRIPTION" :"代码无效。" }
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:14)
授权码的有效期仅为10分钟,并且只能使用一次。这些检查也是如此:
答案 1 :(得分:1)
我使用http://localhost:8080作为我的重定向网址,因为我只是在尝试他们的示例。我的json文件内容有:
"redirect_uris": [
"http://localhost:8080"
],
"javascript_origins": [
"http://localhost:8080"
]
在开发者控制台中,我将redirect_uri设置为“http://localhost:8080”,我收到同样的错误。我将其更改为“http://localhost:8080/”,然后它开始工作。 (基本上在末尾加上'/'。)
希望这有帮助!