当我强迫用户第二次重新授权我的应用程序时,使用approval_prompt=force
,如何让Google向用户显示我的应用程序请求的整个权限列表?
细节:
我有一个Web应用程序,它要求一组Google API权限,包括access_type=offline
.我第一次批准它时,会显示正确的同意页面,列出所有权限,如下所示:
之后,我将用户发回给Google授权,使用相同的参数.第二次,它只显示"有离线访问":
为什么不向用户显示所有权限?有没有办法强制它第二次询问用户所有权限?为什么现在第一次显示"有脱机访问权限"?
我们的用户发现我们的应用程序没有要求任何实际权限令人困惑,所以我宁愿再次显示第一个批准屏幕.
我正在进行的请求的完整参数如下.网址:
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=1039955146864.apps.googleusercontent.com&redirect_uri=http://localhost:8081/sync/google/callback&response_type=code&scope=openid%20email%20https://www.googleapis.com/auth/admin.directory.group.readonly%20https://www.googleapis.com/auth/admin.directory.group.member.readonly%20https://www.googleapis.com/auth/admin.directory.user.readonly&state=480704597031619284232891277399900450622
参数分解:
access_type:offline approval_prompt:force client_id:1039955146864.apps.googleusercontent.com redirect_uri:http://localhost:8081/sync/google/callback response_type:code scope:openid email https://www.googleapis.com/auth/admin.directory.group.readonly https://www.googleapis.com/auth/admin.directory.group.member.readonly https://www.googleapis.com/auth/admin.directory.user.readonly state:480704597031619284232891277399900450622
nvnagr.. 8
我们推出了增量版本,这是按设计工作的.
http://googleplusplatform.blogspot.com/2013/12/google-sign-in-improvements11.html
这个想法是,如果用户已经授予了应用程序的权限,则无需显示相同的权限并要求用户批准.
如果您正确编写应用程序,则不应出现这种情况.如果您请求脱机代码(刷新令牌)并将其存储在后端,除非您需要获得一些新的范围/权限,否则不应再次要求它.您应该使用以后存储的刷新令牌.如果用户在您的站点上时只需要访问令牌,则可以使用其他流来请求访问令牌,而无需用户看到批准页面.