为什么 Google OAuth Api 刷新令牌?
Why Google OAuth Api Refreshes Token?
我正在尝试使用 google oauth 2.0 获取访问令牌,但每当我再次登录时,它都会通过同意屏幕流程并生成一个新令牌。
- 有没有办法在令牌过期之前获得相同的令牌?或(2)
- 如果用户有 accepted/allowed 一次,如何阻止 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,
});
恐怕这就是代币的工作原理:无论何时你问一个,你都会得到一个新的。只需在您这边存储访问和刷新令牌(访问令牌过期时需要刷新访问令牌),如果不需要则不要启动 OAuth。
有参数setApprovalPrompt = auto / force
强制会导致每次都会询问访问范围。
Auto不会问,但是如果你之前已经收到了,你不会得到“refresh_token”,只会得到“access_token” " 有效期为 1 小时
我正在尝试使用 google oauth 2.0 获取访问令牌,但每当我再次登录时,它都会通过同意屏幕流程并生成一个新令牌。
- 有没有办法在令牌过期之前获得相同的令牌?或(2)
- 如果用户有 accepted/allowed 一次,如何阻止 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,
});
恐怕这就是代币的工作原理:无论何时你问一个,你都会得到一个新的。只需在您这边存储访问和刷新令牌(访问令牌过期时需要刷新访问令牌),如果不需要则不要启动 OAuth。
有参数setApprovalPrompt = auto / force
强制会导致每次都会询问访问范围。
Auto不会问,但是如果你之前已经收到了,你不会得到“refresh_token”,只会得到“access_token” " 有效期为 1 小时