询问电子邮件而不会生成新的访问令牌

时间:2019-04-28 22:26:13

标签: oauth-2.0 google-signin google-oauth2 google-api-client refresh-token

在我的Web应用程序中,当用户按下登录按钮时,我想让他选择一封电子邮件,然后检查我的数据库中是否有针对该电子邮件的刷新令牌(针对我需要的范围),以及是否有一个


































问题在于,第一次登录时一切正常,但是在用户注销然后再次登录后,由于我使用gapi.auth2.getAuthInstance().signIn()登录用户,因此会生成新的访问令牌。

第二次登录后,从第一次登录存储的刷新令牌不再起作用,并且使用该令牌进行的请求返回错误:

error: 'invalid_grant',
error_description: 'Token has been expired or revoked.',

这就是为什么我想以某种方式获取电子邮件,用户要从中登录,检查我是否有该电子邮件的刷新令牌(不撤消令牌),然后让用户登录或先要求刷新令牌

有什么办法可以满足我的需求?我试图在gapi.client.init函数中传递一个空范围,并将真实范围传递给grantOfflineAccess函数,但是空范围似乎对init函数无效。

我也不知道这是因为在登录时生成了新的访问令牌,因为为什么新的访问令牌会使旧的刷新令牌无效?

在此先感谢您的帮助。

0 个答案:

没有答案