3

我的应用从用户的 Google 日历中提取信息。用户已经必须登录我的应用程序,因此他们发现每次会话必须至少“授予访问权限”一次(目前使用 OAuth)对他们的谷歌帐户进行“授予访问”,这很烦人。

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

我什至愿意使用 openID 作为我的主要身份验证。那会有帮助吗?

我相信 GData API 提供了一个 ClientLogin 协议,它需要我存储用户的登录信息,我对此并不满意,尽管归根结底我认为它比替代方案更好。

4

3 回答 3

3

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

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

于 2010-11-28T11:29:07.073 回答
2

由于您使用的是 OAuth,我了解您的应用程序是 Web 应用程序?好吧,OAuth 是您遇到所描述问题的原因,这不完全是问题,而是 API 的一个特性。看,OAuth 连接是数字签名的,因此每次用户尝试登录时,他们都会被重定向到 OAuthAuthorizeToken 页面。

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

希望这可以帮助!

于 2010-11-28T10:14:43.667 回答
1

有一个Oauth/OpenID 混合解决方案(参见源代码) - 基本上,您要求获得特定范围的访问权限,获取基本用户数据并请求令牌作为回报,然后将其交换为身份验证令牌并将其保存以备将来使用。

于 2010-12-21T10:53:22.160 回答