为什么Google OAuth Api会刷新令牌?

时间:2020-05-12 17:34:07

标签: google-oauth

我正在尝试使用Google oauth 2.0获取访问令牌,但是每当我再次登录时,它都会经过同意屏幕的过程并生成一个新令牌。

  1. 在令牌过期之前,有没有办法获取相同的令牌?或(2)
  2. 如果用户已接受/允许一次,如何阻止google要求允许访问范围。

这就是我获取访问令牌的方式。

Uri.https("accounts.google.com",  '/o/oauth2/auth', {
    'response_type': 'code',
    'client_id': identifier,
    'redirect_uri': '$REDIRECTURL',
    'scope': 'https://www.googleapis.com/auth/youtube.readonly',
  });

然后:

response = await http.post("https://oauth2.googleapis.com/token", body: {
    'client_id': identifier,
    'redirect_uri': '$REDIRECTURL',
    'grant_type': 'authorization_code',
    'code': code,
  });

2 个答案:

答案 0 :(得分:1)

恐怕就是令牌的工作原理:每问一个,就会得到一个新的令牌。只需将访问和刷新令牌(需要在到期时刷新访问令牌)存储在您的身边,如果不需要,则不要启动OAuth。

答案 1 :(得分:1)

有参数 setApprovalPrompt = auto / force

Force 会导致它每次都会询问访问范围。

自动不会询问,但是如果你之前已经收到过,你不会得到“refresh_token”,你只会得到有效期为1小时的“access_token”