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
是否原创(转载必填原文地址)
是
项目截图(必填)
运行截图(必填)
postman测试
http://localhost:8080/login
{"username":"zuidaima","password":"111111"}
登录获取token
通过token获取用户
http://localhost:8080/getUser
eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ6dWlkYWltYSIsImV4cCI6MTU5Mzc1MTE0MiwiaWF0IjoxNTkzNzQzOTQyfQ.2keb7CouzNmBz8MY4QTbxQAbJuf89f5405HWWONcyOez01PqBeXAC-aRTG2jHx9Y___Nthpy-vgmrqjmfE5fUQ
token值就是login接口中返回的token
注意事项(可选)
postman请求时,参数请求方式务必设置正确,比如login接口必须是POST方式,参数值是raw的json格式
猜你喜欢
- /
- /jpa-jwt-demo
- /jpa-jwt-demo/.idea
- /jpa-jwt-demo/.idea/.gitignore
- /jpa-jwt-demo/.idea/compiler.xml
- /jpa-jwt-demo/.idea/dataSources
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2/_src_
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2/_src_/schema
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2/_src_/schema/information_schema.FNRwLQ.meta
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2/_src_/schema
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2/_src_
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69/storage_v2
- /jpa-jwt-demo/.idea/dataSources/e059430b-9ddd-438a-b697-d2cc40d68b69
- /jpa-jwt-demo/src
- /jpa-jwt-demo/src/main
- /jpa-jwt-demo/src/main/java
- /jpa-jwt-demo/src/main/java/com
- /jpa-jwt-demo/src/main/java/com/gbq
- /jpa-jwt-demo/src/main/java/com/gbq/jpa
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo
/jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo/BootApplication.java
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo/bean
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo/comment
/jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo/comment/LogRecordAspect.java
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo/comment/jwt
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt/demo
- /jpa-jwt-demo/src/main/java/com/gbq/jpa/jwt
- /jpa-jwt-demo/src/main/java/com/gbq/jpa
- /jpa-jwt-demo/src/main/java/com/gbq
- /jpa-jwt-demo/src/main/java/com
- /jpa-jwt-demo/src/main/java
- /jpa-jwt-demo/src/main
- /jpa-jwt-demo/.idea
- /jpa-jwt-demo
- springboot demo小例子
- 原 SpringBoot入门整合开发java Web项目实例
- 证 Springboot实现的图书商城系统
- 证精 Springboot开发的精简博客系统
- 证精 SpringBoot开发非常美观的java博客系统(包含后台管理功能)
- 原证 springboot麦克风录制声音文件保存本地,可拓展ASR识别后返回
- 原证 springboot通过qq邮箱发送邮件
- 证精 Springboot开发的客户关系管理系统SpringbootCRM
- 原 springboot入门之hello world(小白必看)
- 证 SpringBoot用户登录注册简单实例
- 原 springboot入门demo实例
- 证 springboot自定义注解实现重置密码验证功能