代码之家  ›  专栏  ›  技术社区  ›  kbanman

如何永久访问用户的谷歌帐户?

  •  3
  • kbanman  · 技术社区  · 14 年前

    我的应用程序从我的用户的谷歌日历中提取信息。 用户已经必须登录到我的应用程序,所以他们觉得很烦人,他们必须“授予访问”他们的谷歌帐户至少一次会话(目前使用的是OAuth)。

    有没有办法获得永久(或更接近)拨款?

    我甚至愿意使用OpenID作为我的主要身份验证。这样有帮助吗?

    我相信gdata api提供了一个clientlogin协议,它要求我存储用户的登录信息,我对此不太满意,尽管归根结底,我认为它比其他的更好。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Nands    14 年前

    一次生成的OAuth令牌不会过期,除非用户/应用程序本身撤销它们。当用户在你的应用程序上注册时,只需获取访问令牌和访问秘密令牌一次。将其存储在本地,并在需要时使用它来查询gdata API。

    每次用户再次登录时,不需要请求访问令牌。

        2
  •  2
  •   George Violaris    14 年前

    既然您使用的是OAuth,我知道您的应用程序是Web应用程序吗?好吧,OAuth是您遇到所描述的问题的原因,这不仅仅是一个问题,而是API的一个特性。请参见,OAuth连接是数字签名的,因此每次用户尝试登录时,都会将它们重定向到OAuthAuthorizeToken页。

    要解决问题,请使用authsub而不是oauth。它不那么安全,但更方便。此外,它还允许应用程序简单地接收一个表示用户已通过goodle验证的令牌,因此您不需要以这种方式存储任何有关用户的信息。

    希望这有帮助!

        3
  •  1
  •   Artjom Kurapov    14 年前

    有一个 Oauth/OpenID hybrid solution (见 source )-基本上你要求确定 范围 访问、获取基本用户数据并请求令牌作为返回,然后将其交换为auth令牌并保存以供将来使用。