> 文章列表 > 企业开发.JWT

企业开发.JWT

企业开发.JWT

什么是JWT

token 认证,前后端分离的保护机制,前后端的信息传递,接收方是要验证,有数字签名的,以JSON 的形式建立令牌

数字签名算法

ECDSA ,HMAC

使用场景

系统之间的传递数据,数字的签名和加密,信息交换,javaweb安全验证。

单点登录的系统,开销很小,完成跨域。

传统的session验证

信息交换,session 存储信息,http协议无状态,给协议记录状态,每个用户都有自己的session 保存在内存中。

限制了分布能力 ,集群架构受到限制。

解耦后,增加部署复杂型,前端服务nginx,路由网关,代理层网关。

作用

拦截漏洞(伪造攻击),前后端分离。

解决session 内存问题

令牌保存浏览器端,携带令牌,系统中合法令牌。整个格式处理完后。

自包含,分布式微服务,解决session 内存的占用问题,json令牌。后端验证。

构成

三段组成

标头,Payload ,singnature 。

alg HS256, base64的编码。

{

"alg":"HS256".

"typ":"JWT"

}

PAYLOAD

{

"SUB":"1234567890",

"NAME":"John Doe",

"admin": true

}

信息安全

敏感信息泄露,原密码修改。

Payload不要放密码等敏感信息。

非敏感信息,认证授权

spring的应用

1、引入依赖

libraries-io

JWT

withClaim , sign

asInt()

先验证签,解码,过期时间,过期payload,

声明异常

2、生成令牌,验证令牌,

生产环境,

map.forEach((k,v)->{

}

);

3、创建过期时间,

4、创建jwt builder

5、payload 遍历

withEXpiresAt(instance.getTime())

.sign(Algorithm.HMAC256(sign))

return token;

/验证token

JWT.require(Algorithm.HMAC256(sign).build

.verify(token))



springboot整合JWT使用

一、

1、数据库用户认证 db

2、mybaits lombok mysql

3、配置文件,数据类型,jwt,

4、写实体,dao接口,登录接口,service接口

5、业务层实现,注入DAO

6、控制器,加日志,接收name,password.

User user。getName()

7、热部署

e.printStackTrace();

e.printStackTrace();

e.printStackTrace();

二、

拦截器,网关

JWTInterceptor implements HandlerInterceptor

配置,webmvcConfigurer

AOP+注解+拦截器

基于客户端管理

localstore sessionstore

}