如何获得持久访问用户的谷歌帐户?
问题描述:
我的应用从我的用户的Google日历中提取信息。 用户已经必须登录到我的应用程序,所以他们觉得很烦人,他们必须每次会话至少“授予访问”到他们的谷歌帐户一次(目前使用OAuth)。如何获得持久访问用户的谷歌帐户?
是否有办法获得永久(或更接近它)的资助?
我甚至可以使用openID作为我的主身份验证。这会有帮助吗?
我相信GData API提供了一个ClientLogin协议,它要求我存储用户的登录信息,但我对此并不满意,尽管如果它归结为它,我认为它比替代方案更好。
答
oAuth令牌一次生成不会过期EVER,除非用户/应用程序自己撤消它们。当用户在您的应用程序上注册时,只需抓取访问令牌并首次访问一次秘密令牌。在本地存储它,并在需要时使用它来查询GDATA Api。
当用户再次登录时,无需每次请求访问令牌。
答
既然您正在使用OAuth,我知道您的应用程序是一个Web应用程序?那么,OAuth是你遇到你所描述的问题的原因,这不完全是一个问题,而是API的一个特性。请参阅OAuth连接是数字签名的,因此每次用户尝试登录时,都会将其重定向到OAuthAuthorizeToken页面。
要解决您的问题,请使用AuthSub而不是OAuth。它不太安全,但更方便。此外,它还允许您的应用程序简单地收到一个令牌,说明该用户已得到Goodle的验证,因此您无需以这种方式存储有关您的用户的任何信息。
希望这会有所帮助!