小编典典

未收到 Google OAuth 刷新令牌

all

我想从 Google 获取访问令牌。 Google API
表示
要获取访问令牌,将代码和其他参数发送到令牌生成页面,响应将是一个
JSON 对象,如:

{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}

但是,我没有收到刷新令牌。我的情况是:

{
 "access_token" : "ya29.sddsdsdsdsds_h9v_nF0IR7XcwDK8XFB2EbvtxmgvB-4oZ8oU",
"token_type" : "Bearer",
"expires_in" : 3600
}

阅读 70

收藏
2022-04-11

共1个答案

小编典典

refresh_token仅在用户首次授权时提供。后续授权,例如您在测试 OAuth2
集成时所做的授权,将不会refresh_token再次返回。:)

  1. 转到显示有权访问您帐户的应用程序的页面: https ://myaccount.google.com/u/0/permissions 。
  2. 在第三方应用程序菜单下,选择您的应用程序。
  3. 单击删除访问权限,然后单击确定以确认
  4. 您发出的下一个 OAuth2 请求将返回一个refresh_token(前提是它还包括 ‘access_type=offline’ 查询参数。

或者,您可以将查询参数添加prompt=consent&access_type=offline到 OAuth 重定向(请参阅 Google
OAuth 2.0 for Web Server
Applications
页面)。

这将提示用户再次授权应用程序并始终返回一个refresh_token.

2022-04-11