Google身份验证-总是提示授权,我应该如何使用刷新令牌?

时间:2018-08-27 16:26:07

标签: node.js google-oauth2 google-authentication

我目前正在nodejs服务器上发现OAuth标识,以便通过youtube api上的查询对其进行测试。

现在可以了,我可以提出要求。我只有两个问题。

首先,每次我登录时,即使已被授予,Google也会要求获得许可(该许可在我帐户上允许的应用程序中可见)。

根据此答案 “ login with google always asks user consent”,尽管我在本地工作,但这种情况不应该发生。

我的第二个问题可能有助于我回答第一个问题。在研究OAuth时,我了解了刷新令牌的存在,该令牌应该允许在过期时创建新的访问令牌。

我只是不知道使用刷新令牌是由我自己决定还是由库在发出请求时自行完成?

我基于: https://developers.google.com/youtube/v3/quickstart/nodejs

每个会话都与包含令牌和所有客户端信息的OAuth2Client相关联

[当前情况]

刷新令牌由库处理,如Rubénhere所示。 仍然没有每次提示的答案。

1 个答案:

答案 0 :(得分:0)

遵循该快速入门,当您通过授权时,您正在呼叫<v-dialog v-model="dialog" transition="dialog-bottom-transition">

getToken

令牌对象响应包含一个access_token和refresh_token。只有在您首次登录时才会返回refresh_token(如果为token expires,则可以获取新密码),并且需要存储它以生成新的访问令牌。

您还可以在示例中看到,在oauth2Client.getToken(code, function(err, token) { if (err) { console.log('Error while trying to retrieve access token', err); return; } oauth2Client.credentials = token; storeToken(token); callback(oauth2Client); }); 函数中,您需要检查以前是否存储了令牌。

然后,要使用refresh_token,您需要致电:

authorize

使用refresh_token设置凭据后,access_token会自动更新,您可以使用oauth2client再次发出请求。

我希望一切都清楚!

参考:https://developers.google.com/identity/protocols/OAuth2WebServer#offline