企业开发.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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值