【发布时间】:2021-01-28 15:57:49
【问题描述】:
我正在学习 Java 和 Spring 中的身份验证以及基于会话和令牌的身份验证之间的区别。
我知道在基于会话的身份验证中,用户将用户名/密码发送到服务器。它可以使用 html 表单或基本身份验证发送凭据。之后,服务器创建一个会话并在像 set-cookie: sessionid 这样的 cookie 头中发送会话 id,当用户发出另一个请求时,它将使用像 cookie: sessionid 这样的 cookie 头中的会话 id。并且服务器将cookie中存储的会话id与内存中存储的会话信息进行比较,以验证用户的身份并发送具有相应状态的响应。
我不确定在基于令牌的身份验证中发生了什么。用户将以与第一种情况相同的方式将用户名/密码发送到服务器:html 表单、基本身份验证等。服务器创建 JWT 并将 JWT 通常在本地存储中发送到用户浏览器。但我不明白的是服务器如何将 JWT 发送给客户端?它是否在像 set-authorization: jwt 这样的标头中发送 JWT?放置 jwt 的标头的名称是什么?之后,当客户端发出新请求时,JWT 将位于像 Authorization: Bearer jwt 这样的授权标头中。所以我不明白 JWT 是如何从服务器发送到浏览器的。任何反馈将不胜感激!谢谢!
【问题讨论】:
标签: java jwt authorization token bearer-token