一、区别和联系
对于他们之间的区别以及联系,本篇博文仅做一下总结,具体可以看看这篇博客:彻底理解 Cookie、Session、Token
Token 与 Session 都是用来标识客户端的一种方式,他们都可以保存用户信息,都可以用来识别用户。
但是他们的主要区别是:前者是客户端保存用户信息,后者是服务端保存用户信息。
使用 Token 时,当用户登录成功后,服务端返回一条带有用户信息的加密字符串(Base64)给客户端保存。
使用 Session时,当用户登录成功后,服务端保存用户信息,并返回一条唯一标识该用户信息的字符串。
他们以后访问服务器时,就将请求加上 token 或者 sessionId 发送给服务器,服务器用此来区分客户端。
正如上面所述,但用户非常多时,使用 Session 的话服务器将会消耗大量内存,增加服务器负荷。
Cookie 和 LocalStorage 都是浏览器用来存储数据的,比如上面的 token 或者 sessionId,不过 LocalStorage 存储空间更大。
他们之间的区别可以看看这篇博文:浅谈浏览器存储(Cookie、LocalStorage)
最后说一下关于Session和Token的使用:
二、Token的使用
Java 有许多JWT库的实现,它们之间各有优缺点,可以看看这篇:各JWT库的对比
如果使用其中一种集成到SpringSecurity中,可以看看这篇:JWT和SpringSecurity集成