Oauth 2.0 单页应用程序的服务器应该如何处理过期的oAuth令牌?

Oauth 2.0 单页应用程序的服务器应该如何处理过期的oAuth令牌?,oauth-2.0,google-oauth,Oauth 2.0,Google Oauth,作为背景,我使用的是Google OAuth2 NodeJS客户端,但我认为我的问题更抽象/独立于技术 我的网站是一个单页应用程序,通过AJAX与服务器进行通信 当用户第一次访问我的网站时,我执行OAuth2流,将他们重定向到Google登录,然后使用访问令牌重定向回我的网站。我将这个访问令牌存储在cookie中,并使用它处理通过AJAX对服务器进行的各种调用 我的挑战是,当访问令牌过期时,我不确定该怎么办。我是否也应该将刷新令牌存储在cookie中并使用它,或者这样做是否存在安全问题 我是否应

作为背景,我使用的是Google OAuth2 NodeJS客户端,但我认为我的问题更抽象/独立于技术

我的网站是一个单页应用程序,通过AJAX与服务器进行通信

当用户第一次访问我的网站时,我执行OAuth2流,将他们重定向到Google登录,然后使用访问令牌重定向回我的网站。我将这个访问令牌存储在cookie中,并使用它处理通过AJAX对服务器进行的各种调用

我的挑战是,当访问令牌过期时,我不确定该怎么办。我是否也应该将刷新令牌存储在cookie中并使用它,或者这样做是否存在安全问题


我是否应该重定向浏览器以再次执行登录流?这对于一个单页应用程序来说似乎相当难看。

您可以在后台通过js执行OAuth2流程(如带有弹出窗口的登录流程),如果您的应用程序id的访问权限没有被撤销,那么用户不应该看到任何相关内容。虽然您可以在用户电子邮件上设置提示以进行身份验证,但这可能不起作用。 您提到的另一种方式是刷新令牌,您可以使用它来请求新的访问令牌,而无需用户交互。也许这是一个更好的主意,但请记住,只有将
访问类型设置为脱机时,您才能获得刷新令牌