Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google OAuth令牌到期_Javascript_Oauth - Fatal编程技术网

Javascript Google OAuth令牌到期

Javascript Google OAuth令牌到期,javascript,oauth,Javascript,Oauth,我有一个应用程序,是谷歌日历的平视显示。该应用程序是100%客户端javascript,我希望保持这种方式,但谷歌的OAuth令牌过期使我无法允许用户保持应用程序打开,并继续轮询谷歌API 我正在寻找人们关于如何刷新令牌或请求新令牌的任何信息,同时对用户完全透明。3600秒后,应用程序必须重新请求访问用户google帐户,完全重定向将迫使应用程序中断 我尝试了其他几种方法,首先我尝试使用服务器端身份验证,它在localStorage中运行得很好,但在获取请求令牌后尝试发布访问令牌时失败,我尝试了

我有一个应用程序,是谷歌日历的平视显示。该应用程序是100%客户端javascript,我希望保持这种方式,但谷歌的OAuth令牌过期使我无法允许用户保持应用程序打开,并继续轮询谷歌API

我正在寻找人们关于如何刷新令牌或请求新令牌的任何信息,同时对用户完全透明。3600秒后,应用程序必须重新请求访问用户google帐户,完全重定向将迫使应用程序中断

我尝试了其他几种方法,首先我尝试使用服务器端身份验证,它在localStorage中运行得很好,但在获取请求令牌后尝试发布访问令牌时失败,我尝试了iframe和page POST都不起作用:(


如果有人对如何使用谷歌认证和保持用户身份有任何想法,请分享:)

不幸的是,我发现的唯一方法是使用Web服务器,因为没有其他方法来保护您的客户的机密。如果这是您的选择,我已经成功实现了以下Google文档中描述的方法:


基本上,我首先在客户端请求脱机访问,然后在成功时,使用我的Web服务器将生成的授权代码交换为刷新令牌。刷新令牌还可以存储在具有超长过期期的cookie中。每次访问令牌到期时,我都会使用刷新令牌请求另一个访问令牌。

查看如何使用刷新令牌。它们是持久的,可用于获取新的访问令牌。客户端web应用可能不支持刷新令牌,但本页介绍了有关刷新令牌的更多信息: