栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JWT身份认证

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JWT身份认证

文章目录
  • 参考
  • 项目方案

参考

JWT概念:
JWT认证解决问题、原理、数据结构、特点
JWT认证与常见认证方式概念:1、2章节部分

自定义JWT生成以及解码工具
SpringSecurity配置JWT校验过滤器:3章节部分:过滤器链与完成认证后放入response
SpringSecurity配置用户完成身份认证后返回JWT:完成认证后在response中放入token信息传给前端

实际项目:
SSO与JWT结合

JWT阿里文档

项目方案

需求:内部服务需要开放一个外部接口供业务方调用,因此涉及到业务方身份认证、权限识别问题。

认证方案:采用token认证,使用JWT

登陆对象:
1,一期对方以app的身份登陆的,参考salesforce app认证的方式设计认证流程。
2,后期会考虑以用户身份登陆。

app认证具体方案:由业务方完成认证token的生成并携带着获取accessToken
一、
内部tcc(动态配置微服务)建立配置{appid、appName、appSecret(发给用户、用于生成JWT的私钥}
私钥生成方式:生成随机字符串的方式。
将信息告知业务方

服务端另准备一个自己的私钥,同样用JWT方式生成accessToken

二、
业务方获取与刷新accessToken的步骤
1,使用私钥生成JWT
参考SpringBoot生成JWT
2,服务端提供getAccessToken接口,业务方携带appID与JWT访问
getAccessToken做的事情:1,查询tcc,获取私钥;2,使用私钥解析JWT并对比tcc配置完成JWT校验。3,获取JWT中的过期时间字段,生成accessToken,并将该token存放在redis中并设置过期时间,key为使用appid进行拼接。4,返回给业务方accessToken。
3,服务端提供refresAccessToken接口,用于接受业务方传入的旧的即将过期的token,完成token时间的刷新。这里入参要求业务方用私钥生成一次JWT。

三、
accessToken认证过程:
1,访问任何接口在request的header中必须有accessToken
2,解析accessToken,获取其中的appID,拼接redis的key
3,与redis存储内容进行对比,要求一致

app认证方案2:业务方不生成认证token,走认证的方式
参考:非对称加密保证登陆安全
为了避免明文传输密码,需要采用非对称加密,提供业务方公钥来加密appid与appsecret,我方获取后解密并与tcc对比,一致即完成认证,下发accessToken。

一个业务方访问实现的demo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462266.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号