我有一个应用程序是谷歌日历的抬头显示器。该应用程序是100%客户端javascript,我想保持这种方式,但谷歌的OAuth令牌过期使我不允许用户打开应用程序,继续轮询谷歌API。
我正在寻找人们有关如何刷新令牌或请求新令牌的任何信息,同时对用户完全透明。在3600秒之后,应用程序必须重新请求访问用户Google帐户,完整重定向会强制中断应用程序。
我尝试过其他一些方法,首先我尝试使用服务器端auth,它与localStorage配合得很好,但是当我在获取请求令牌后尝试POST访问令牌时失败,我尝试了iframe和页面发布既不工作:(。
如果有人对如何使用google进行身份验证并保持用户权限,请分享:)
答案 0 :(得分:0)
不幸的是,我发现这样做的唯一方法是使用网络服务器,因为没有其他方法可以保证您的client_secret安全。如果这是您的选择,我已成功实施以下Google文档中描述的方法:
https://developers.google.com/accounts/docs/OAuth2WebServer
基本上我最初在客户端请求离线访问然后成功,使用我的网络服务器交换生成的授权代码以获取刷新令牌。刷新令牌也可以存储在具有超长期限的cookie中。每当我的访问令牌到期时,我都会使用刷新令牌来请求另一个访问令牌。