人间蒸发的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实现用户登录授权认证


打赏

已有2人打赏

低调人的gravatar头像 最代码官方的gravatar头像

文件名:jpa-jwt-demo.zip,文件大小:65.847K 下载
最代码最近下载分享源代码列表最近下载
lyws1986  LV17 2023年10月29日
王雲飞  LV7 2023年8月24日
ewan007  LV29 2023年7月3日
139465  LV12 2023年4月3日
aaaahao  LV13 2022年10月28日
tnrthr  LV6 2022年9月22日
laishaofe  LV7 2022年8月30日
1234mama  LV19 2022年6月7日
zerofire  LV3 2022年3月31日
xwl123  LV12 2022年1月25日
最代码最近浏览分享源代码列表最近浏览
简约时尚  LV13 1月16日
lyws1986  LV17 2023年10月29日
王雲飞  LV7 2023年8月24日
ewan007  LV29 2023年7月3日
zzh081401 2023年6月30日
暂无贡献等级
139465  LV12 2023年4月3日
qq1176648922  LV6 2022年12月28日
heweimin  LV12 2022年12月13日
卡布琪洛  LV4 2022年11月16日
aaaahao  LV13 2022年10月28日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友