在不更改我的代码或配置的情况下,现在每当用户尝试对我的应用程序进行身份验证时,谷歌都会要求用户授予权限。即使用户已经获得访问权限并且范围没有改变。
我没有收到任何错误并且登录工作正常只是现在每次都会出现要求权限的谷歌对话框。
为了初始化谷歌,我使用 gapi.auth2.init 和“https://www.googleapis.com/auth/plus.profile.emails.read”作为范围。
同样为了请求访问,我使用 auth2.grantOfflineAccess。
我还在我的 Google 帐户中检查了可以访问的应用程序,并且该应用程序已在那里成功注册。
其他人见过这个问题吗?或者知道谷歌是否在处理权限的方式上改变了一些东西?
最佳答案
我相信我看到了类似的行为......身份验证流程已经开始要求用户在每次登录时向范围授予应用程序权限。以前,它只会从登录进行到第一次授予权限用户登录应用程序。我最近没有更改请求的范围或底层代码......但也有一段时间(几个月?)
我正在使用 oAuth2 服务器端身份验证和 grantOfflineAccess() 概述 here .
鉴于没有发布实现细节,我不知道我找到的修复程序是否适用于您的情况。
我发现的更正......以便身份验证仅要求用户在他们第一次登录应用程序时授予权限是在调用 getOfflineAccess() 时明确指定“提示”属性。
var auth2 = gapi.auth2.getAuthInstance();
auth2.grantOfflineAccess({
prompt : 'select_account'
}
).then(signInCallback);
关于google-api - 每次请求访问应用程序时,Google auth2 都会请求许可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338147/