【发布时间】:2020-07-04 16:51:56
【问题描述】:
在构建 javascript SPA(单页应用程序)时,我需要根据用户是否登录以不同方式显示一些页面。
Auth 由 JWT 处理,JWT 通过 httpOnly cookie 和安全标头提供服务。
这使 SPA javascript 无法访问 cookie,这反过来意味着我不知道用户是否已登录。
我确实查看了一些有关如何解决此问题的帖子,并找到了一些建议,例如
发送另一个不是 httpOnly 的 cookie,带有一些标志,如会话 ID 或带有过期日期的用户 ID,在客户端 JS 中,使用该 cookie 来查看用户是否已通过身份验证。
在 API 服务器上创建一个端点,例如
/is-logged-in并从 JS 进行 http 调用,以在显示页面之前检查用户是否经过身份验证。在没有 cookie 的情况下将 JWT 存储在本地(由于安全原因以及我必须编写大量代码来缓解各种可能的窃取攻击,显然不可行)
我参加 SPA 派对迟到了,但我确信这一定是一个长期解决的问题。我猜我看不到明显的东西。
请指点我正确的方向。
为了完整起见,这里有一些未回答、半回答的相关帖子
【问题讨论】:
标签: javascript cookies jwt