【问题标题】:How to get persistent access to a user's google account?如何获得对用户谷歌帐户的持久访问权限?
【发布时间】:2011-05-16 19:42:26
【问题描述】:
我的应用从用户的 Google 日历中提取信息。
用户已经必须登录我的应用程序,因此他们发现每次会话必须至少“授予访问权限”一次(目前使用 OAuth)对他们的 Google 帐户“授予访问权限”很烦人。
有没有办法获得永久(或更接近)资助?
我什至愿意使用 openID 作为我的主要身份验证。会有帮助吗?
我相信 GData API 提供了一个 ClientLogin 协议,该协议要求我存储用户的登录信息,我对此并不满意,但如果归根结底,我认为它比替代方案更好。
【问题讨论】:
标签:
php
oauth
openid
google-api
google-openid
【解决方案1】:
生成的 oAuth 令牌永远不会过期,除非用户/应用程序自己撤销它们。当用户在您的应用程序上注册时,只需获取一次访问令牌和访问秘密令牌。将其存储在本地,并在需要时使用它来查询 GDATA Api。
用户再次登录时,您无需每次都请求访问令牌。
【解决方案2】:
由于您使用的是 OAuth,我知道您的应用程序是 Web 应用程序?好吧,OAuth 是您遇到所描述问题的原因,这不完全是问题,而是 API 的一个特性。请注意,OAuth 连接是经过数字签名的,因此每次用户尝试登录时,他们都会被重定向到 OAuthAuthorizeToken 页面。
要解决您的问题,请使用 AuthSub 而不是 OAuth。它不太安全,但更方便。此外,它还允许您的应用程序简单地接收表示用户已通过 Goodle 验证的令牌,因此您不需要以这种方式存储有关您的用户的任何信息。
希望这会有所帮助!