【发布时间】:2022-08-09 14:44:14
【问题描述】:
我有一个不使用刷新令牌的身份验证系统解决方案。请告诉我这种方法的漏洞在哪里。
我假设以下内容:
- 客户端和服务器在同一个域中。
- 客户端是支持 HttpOnly cookie 的浏览器。
- 客户端正在使用单页应用程序。
步骤是:
- 用户登录通过使用凭据向
/api/auth发出请求。 - 服务器验证用户并返回一个设置 Cookie 标头带着HttpOnly包含 JWT 的 cookie。
- 客户端接收并设置 HttpOnly cookie。客户端也设置了本地存储一个变量
logged: true。 - 一段时间后,用户重新打开浏览器。单页应用程序检查本地存储中的变量
logged是否为== true。如果是这样,请检查它是否仍然具有 HttpOnly cookie向/api/check-cookie提出请求. - 服务器响应
true如果找到 HttpOnly cookie它是有效的。否则false。 - 客户端,如果从
/api/check-cookie收到false,将提示用户登录。使用这种方法,JWT 可以有很长的到期日期,并且不需要跟踪刷新令牌。
我错过了什么吗?
标签: authentication oauth jwt local-storage cookie-httponly