最代码人间蒸发的gravatar头像
最代码人间蒸发2020-07-02 17:39:28

Spring boot 整合JWT + Security实现用户登录授权认证

项目描述

Spring boot 整合JWT + Security

什么是JWT

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

传统Cookie+Session与JWT对比
1. 在传统的用户登录认证中,因为http是无状态的,所以都是采用session方式。用户登录成功,服务端会保证一个session,当然会给客户端一个sessionId,客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId。cookie+session这种模式通常是保存在内存中,而且服务从单服务到多服务会面临的session共享问题,随着用户量的增多,开销就会越大。而JWT不是这样的,只需要服务端生成token,客户端保存这个token,每次请求携带这个token,服务端认证解析就可。

2. JWT方式校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录,验证token更为简单。

运行环境

jdk8+mysql57+IntelliJ IDEA+maven

项目技术(必填)

spring boot+security+jpa+jwt

数据库文件(可选)

新建demo数据库后可自动生成

也可以通过下面的ddl sql脚本初始化

链接:https://pan.baidu.com/s/1hNqf3P-8ryEW8jxJuMKQnQ
提取码:ilmi

依赖包文件(可选)

链接:https://pan.baidu.com/s/15hsxg9Qz3JApFh_-SMkYZg
提取码:rz9c

是否原创(转载必填原文地址)

项目截图(必填)

Spring boot 整合JWT + Security实现用户登录授权认证

Spring boot 整合JWT + Security实现用户登录授权认证

运行截图(必填)

Spring boot 整合JWT + Security实现用户登录授权认证

postman测试

http://localhost:8080/login

{"username":"zuidaima","password":"111111"}

登录获取token

Spring boot 整合JWT + Security实现用户登录授权认证

Spring boot 整合JWT + Security实现用户登录授权认证

通过token获取用户

http://localhost:8080/getUser

eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ6dWlkYWltYSIsImV4cCI6MTU5Mzc1MTE0MiwiaWF0IjoxNTkzNzQzOTQyfQ.2keb7CouzNmBz8MY4QTbxQAbJuf89f5405HWWONcyOez01PqBeXAC-aRTG2jHx9Y___Nthpy-vgmrqjmfE5fUQ

token值就是login接口中返回的token

Spring boot 整合JWT + Security实现用户登录授权认证

Spring boot 整合JWT + Security实现用户登录授权认证

注意事项(可选)

postman请求时,参数请求方式务必设置正确,比如login接口必须是POST方式,参数值是raw的json格式

Spring boot 整合JWT + Security实现用户登录授权认证


打赏

已有1人打赏

最代码官方的gravatar头像

文件名:jpa-jwt-demo.zip,文件大小:65.847K下载
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友