我正在构建一个REST服务器和一个客户端。现在我需要嵌入一些第三方oauth2身份验证。现在我将用户引导到服务器,让他对服务进行身份验证,然后重定向到客户端,有点像这样:
客户:未经过身份验证 - >服务器 - >重定向到第三方 - >重定向到服务器 - >重定向到应用程序。
然后我在客户端存储cookie以识别用户(使用withCredentials和CORS发送cookie)。
我现在的问题是,当令牌过期时我应该怎么做重新验证?由于客户端和服务器只通过json进行通信,因此我必须再次启动完整的身份验证过程,因此用户将丢失应用程序中的所有状态。有没有人建议如何解决这个问题?在客户端进行身份验证并将访问令牌存储在服务器上还是更好?
答案 0 :(得分:1)
无论你做了什么,都是获得OAuth access_token 的正确方法。您的 access_token 是临时的,因此可以过期。
我认为你可以做以下任何一种:
检查授权服务器(您用于获取令牌)是否提供了使用 access_token 获取更长持续时间令牌的选项。这也是OAuth 2规范中的建议。
尝试在不使用会话的情况下存储用户的状态。