目录
前言
小编通过网上的资源,自学spring boot整合JWT,但发现网上的大部分资源对新手入门都不是太友好~。所以本着复杂问题简单化的思想,写了这篇快速入门的文章,即是个人的学习笔记,又是帮助大家入门的查考。如有错误之处,请大家指出。
1. 什么是JWT
JWT全称是:json web token。它将用户信息加密到 token 里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证 token 的正确性,只要正确即通过验证。
2. JWT解决的问题
传统的web服务用户登录的原理是,服务器将相关的用户信息储存到session
中,客户端则储存session_id
。当客户端发送请求到服务器时,请求会带有session_id
,服务器根据session_id
,找到对应的session
,然后获取里面的用户信息,最后进行比对,从而验证用户是否已经登录。
但是这种解决方案只适用于只有一台服务器提供服务,无法便捷地适用于服务器群集或面向服务的跨域体系结构的项目。JWT正好可以弥补这个弊端。
简单的来说,JWT解决了跨域身份验证问题。
3. JWT原理
服务器在验证完用户信息后,会生成一个记录登录信息的JSON数据,并发送到客户端。每当客户端发送请求时,都会带有这个JSON数据,服务器会根据这个JSON数据来识别用户。从而实现跨域身份验证问题。
4. 快速入门
1. jar包
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.10.3</version>
</dependency>
2. JWT工具类
public class JwtUtil {
/**
* 生命周期为5分钟,单位是毫秒
*/
private static final long EXPIRE_TIME = 5 * 60 * 1000;
/**
* 密钥
*/
private static final String SECR