2012-03-20 242 views
3

我有一个应用程序,是谷歌日历抬头显示。该应用程序是100%的客户端JavaScript,我想保持这种方式,但谷歌的OAuth令牌失效让我不允许用户离开应用程序打开,它继续调查谷歌API。谷歌OAuth令牌到期

我正在寻找有关如何刷新令牌或请求新令牌的任何信息,同时对用户完全透明。在3600秒之后,应用程序必须重新访问用户的Google帐户,完全重定向会在应用程序中强制中断。

我已经尝试了一些其他方法,首先我尝试使用服务器端身份验证,它与localStorage工作得很好,但是当我在获取请求令牌后尝试POST访问令牌时失败,我试过了iframe和page既不发布工作:(。

如果任何人有关于如何权威性和保持与谷歌authed用户的任何想法,请分享:)

+1

研究使用刷新令牌。它们持久且可用于获取新的访问令牌。它们可能不支持客户端Web应用程序,但本页面还包含更多有关刷新令牌的信息:https://developers.google.com/accounts/docs/OAuth2 – abraham 2012-03-20 21:29:43

回答

0

不幸的是我找到了这样做的唯一方式是使用一个Web服务器作为有没有其他方法来保证您的client_secret安全。如果这是一个选项,你,我有过成功实现以下谷歌文档中描述的方法:

https://developers.google.com/accounts/docs/OAuth2WebServer

基本上我最初要求在客户端的离线访问,然后成功,交易产生的授权码使用我的网络服务器刷新令牌。刷新令牌也可以存储在超长超时的cookie中。每当访问令牌到期时,我都使用刷新令牌请求另一个访问令牌。