在使用oAuth2授权应用并获取所请求范围的权限后,我仍然会看到一个屏幕,询问我是否授予应用有离线访问权限的权限,每次我尝试使用Google oAuth2登录时。一旦我允许它拥有它,是不是应该不再出现的东西?
答案 0 :(得分:13)
这个提示可能是因为有两个参数,
确保您已将access_type设置为' online'和apporoval_prompt到' auto'
$client->setAccessType('online');
$client->setApprovalPrompt('auto') ;
答案 1 :(得分:10)
您使用approval_prompt
参数吗?如果您已有刷新令牌,请尽量不要再次请求脱机访问。即使用户再次登录,它仍应保持有效,而不请求离线访问。
可以找到关于此的参考here。
答案 2 :(得分:7)
我的猜测是,您的应用每次都有appro_prompt =强制强制执行OAuth。由于用户已经授权您请求的任何范围,因此无需重复这些范围。然而,屏幕必须说些什么,所以在没有任何更好的想法的情况下,Google会要求“离线访问”。
只要确保你没有强制认证,你应该没事。
答案 3 :(得分:5)
这不是错误。这是谷歌oauth2的正常情况。
首次处理同意如下:
来自第二个流程:
浏览器检查谷歌帐户的cookie同意许可。
答案 4 :(得分:-1)
根据增量auth机制及其设计,很可能这是非常正常的。想法是如果用户已经授予了应用程序的权限,则无需显示相同的权限并要求用户批准。
http://googleplusplatform.blogspot.com/2013/12/google-sign-in-improvements11.html