Gre*_*eg 5 login codeigniter oauth-2.0 google-oauth
我有一个内部网络应用程序,我的公司使用谷歌认证系统登录.它在大多数情况下运行良好,他们可以通过谷歌进行身份验证,同意我的应用程序访问基本用户详细信息,然后当它们返回到我的应用程序时,我确实可以获得他们的用户详细信息.
问题在于,我认为一旦他们同意,他们就不必每次都这样做.这是一个不正确的假设吗?就像现在一样,每次他们点击"使用谷歌登录"时,他们必须同意而不是重定向回我的应用程序.
我正在使用PHP(codeigniter)和在github上发现的非常好的Oauth lib(phil sturgeon的库的叉子).是否有一些我应该通过的参数,以便用户在第一次之后不必每次都给予同意?
bre*_*eno 15
Google登录每次都不需要用户同意.如果您使用的是OAuth2登录程序,则应该能够再次登录而无需重新批准:https://developers.google.com/accounts/docs/OAuth2Login
但是,在某些情况下,自动批准可能会被禁用,随后需要在每次登录时获得用户同意.
第一个也是最常见的情况是,如果您的应用程序明确要求Google每次都提示同意.检查您的授权请求(您可能已从示例或示例代码中复制)是否包含'prompt = consent'或旧的非标准格式'approval_prompt = force'.删除这些参数(如果存在)可能会导致自动批准开始工作.
另一种情况是,您的重定向URL基于"localhost"或其他不属于全局DNS命名空间的URL.在这种情况下,出于安全原因,Google会在accounts.google.com域中的用户计算机上设置一个Cookie,以表明用户已授权_this_device_登录localhost(或本地域)上的'foo'; 只有在找到cookie时,Google才会自动批准不同意第二次请求.原因是"localhost"(或本地域,或未构建在全局DNS名称空间上的其他URL)的含义取决于设备,并且允许授权跨设备应用可能会带来安全风险.因此,如果您的公司已配置浏览器以在退出时清除所有cookie,并且您使用非绝对URL,则您可以看到您的用户每次都必须同意.解决方案是将您的端点托管在Internet有效的主机名上(主机不需要从Intranet外部访问,只需要主机名全局有效),或者您需要免除accounts.google.com饼干清算政策.
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |