oauth2.0 尝试使用刷新令牌时请求无效

Posted

技术标签:

【中文标题】oauth2.0 尝试使用刷新令牌时请求无效【英文标题】:oauth2.0 invalid request when trying to use refresh token 【发布时间】:2012-10-02 16:04:45 【问题描述】:

使用谷歌 oauth2 游乐场:https://developers.google.com/oauthplayground/ 已关注:https://developers.google.com/accounts/docs/OAuth2WebServer#offline

为什么我收到无效请求?

POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-length: 209
Content-type: application/x-www-form-urlencoded
Authorization: OAuth ya29.XXXXXXXX

client_id=XXXXXXXXX&
client_secret=XXXXXXXXX&
refresh_token=1/0ffkj5lggn8XXXXXXXXX&
grant_type=refresh_token

HTTP/1.1 400 Bad Request
Content-length: 33
X-xss-protection: 1; mode=block
X-content-type-options: nosniff
X-google-cache-control: remote-fetch
-content-encoding: gzip
Server: GSE
Reason: Bad Request
Via: HTTP/1.1 GWA
Pragma: no-cache
Cache-control: no-cache, no-store, max-age=0, must-revalidate
Date: Thu, 11 Oct 2012 21:29:55 GMT
X-frame-options: SAMEORIGIN
Content-type: application/json
Expires: Fri, 01 Jan 1990 00:00:00 GMT


  "error" : "invalid_request"

【问题讨论】:

【参考方案1】:

如果您得到 400 是因为您添加了无效参数或缺少参数。

编辑:

我相信从给定的数据有一个额外的标题授权。仅当在标头中传递 access_token 时才在 oauth2 中使用,以进行经过身份验证的调用

Authorization : Bearer XXXXXXXXXXXXXXXX

在刷新 access_token 时,不需要在 header 中提供相同的内容。

https://developers.google.com/accounts/docs/OAuth2InstalledApp#refresh

【讨论】:

以上是关于oauth2.0 尝试使用刷新令牌时请求无效的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Microsoft OWIN 令牌变得无效

在 React 中无效时自动刷新令牌

使用刷新令牌时 Spring Boot JWT 令牌无效签名

OAuth 2.0 访问令牌已过期,刷新令牌不可用

无法在跨客户端谷歌 oauth2.0 中交换访问令牌和刷新令牌的授权码

react-query 遇到 401 时尝试刷新令牌并使查询无效