接口t app官网下载n生成器_后端如何生成t app官网下载n
时间:2023-04-10
metamask拥有多年的区块链服务经验,为用户提供专业的服务信息,下面介绍接口token生成器,以及后端如何生成token,选择metamask可以为您随时随地解决玩币中所遇到的各种问题,让你不再为职称评级繁琐事务而烦恼。
JWT(json web token)是为了在网络应用环境之间传递声明而执行的一种基于JSON的开放标准。
JWT的声明一般被用来在 身份提供者 和 服务提供者 间传递被认证的用户身份信息,以便从资源服务器获取资源。比如用于登录。
shiro(9)-有状态身份认证和无状态身份认证的区别
JWT由三部分组成:头部(header)、载荷(payload)、签名(signature)。头部定义类型和加密方式;载荷部分放的不是很重要的数据;签名使用定义的加密方式加密base64后的header和payload和一段自己加密key。最后的token由base64(header).base64(payload).base64(signature)组成。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmciOiLku4rml6XlpLTmnaEiLCJuYW1lIjoiRnJlZeeggeWGnCIsImV4cCI6MTUxNDM1NjEwMywiaWF0IjoxNTE0MzU2MDQzLCJhZ2UiOiIyOCJ9.49UF72vSkj-sA4aHHiYN5eoZ9Nb4w5Vb45PsLF7x_NY
JWT头部分是一个描述JWT元数据的JSON对象。
完整的头部就像下面这样的json。
然后将头部进行base64加密,构成第一部分:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
载荷是存放有效信息的地方,这些有效部分包含三个部分。
公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息, 但不建议添加敏感的信息,因为这部分在客户端可解密。
私有声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。
定义一个payload:
然后将其进行base64加密,得到第二部分
eyJvcmciOiLku4rml6XlpLTmnaEiLCJuYW1lIjoiRnJlZeeggeWGnCIsImV4cCI6MTUxNDM1NjEwMywiaWF0IjoxNTE0MzU2MDQzLCJhZ2UiOiIyOCJ9
jwt的第三部分是一个签证信息,这个签证信息由三部分组成:
这个部分需要base64加密后的header和base64加密后的payload使用 . 连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,就构成了jwt的第三部分:
49UF72vSkj-sA4aHHiYN5eoZ9Nb4w5Vb45PsLF7x_NY
注:密钥secret是保存在服务端的,服务端会根据这个密钥进行生成token和验证,所以要保护好。
解析结果
重放攻击是攻击者获取客户端发送给服务器端的包,不做修改,原封不动的发送给服务器用来实现某些功能。比如说客户端发送给服务器端一个包的功能是查询某个信息,攻击者拦截到这个包,然后想要查询这个信息的时候,把这个包发送给服务器,服务器就会做相应的操作,返回查询的信息。
先访问验证接口。接口输出一个根据用户信息生成的token(内容格式随意)和uid。然后后边的每次提交提交token和uid,服务端验证即可。
token生成可以根据useragent等客户端信息来生成。
JWT由三部分组成,由类型和加密算法的head(头部),包含公共信息和自定义信息的playboard(负载),以及signature(签名)组成。
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 就是头部信息,这是由base64加密后的密文,base64是一种对称加密算法,解密后的json格式如下。头部信息由type(类型)和 alg(加密算法)组成。类型就是”JWT”,加密算法一般使用 HMAC SHA256加密算法。
eyJhdWQiOiIzOTU4MTU4MDEiLCJleHAiOjE2MDYxMDc5NTEsImlhdCI6MTYwNjEwMDc1MX0 就是负载信息,加密后的json格式如下。负载信息一般由标准申明,公共声明,私有声明组成。
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
公共的声明和私有的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息。但不建议添加敏感信息,因为该部分在客户端可解密。
第三部分签名是由base64加密后的头部信息和负载信息以及secret组成的签名,签名算法是有头部信息定以的加密算法,一般是HMAC SHA256。然后头部,负载,签名三部分组成了token。
pom.xml引入依赖
新增controller,提供token接口
CallbackService 生成token
返回的示例如下
定义自定义注解,在需要token校验的方法上加上即可
新增AuthenticationInterceptor对第三方请求进行拦截,实现HandlerInterceptor接口
注册AuthenticationInterceptor拦截器,对指定请求路径进行拦截
在此文中,我们大致了解了Token的定义,获取,校验等方法。此外,Token 的无状态,可扩展性,多平台跨域等特性,也让Token广泛应用在安全校验领域中。在下面的几篇文章中,我将介绍如何使用Spring AOP进行加密,解密,验签等操作。
参考:
这个需要php后端生成,当登录成功的时候,后端通过用一些信息通过算法组合成token,返回给app端,app端接收保存。这个token尽量做成可以还原解析
如果对安全性要求较高,可以对app端的某些用户信息或mac/ip等进行加密散列生成token;通常就使用uuid生成一个随机值作为token就好了。是否写进数据库看自己的业务需求,比如如果要求服务器挂掉重启之后客户端带着挂掉前的token能够正常访问,那就需要写进数据库。
业务场景
在前后分离场景下,越来越多的项目使用token作为接口的安全机制,APP端或者WEB端(使用VUE、REACTJS等构建)使用token与后端接口交互,以达到安全的目的。本文结合stackover以及本身项目实践,试图总结出一个通用的,可落地的方案。
基本思路
用户仅登录一次,用户改变密码,则废除token,重新登录
1.0实现
1.登录成功,返回access_token和refresh_token,客户端缓存此两种token;2.使用access_token请求接口资源,成功则调用成功;如果token超时,客户端携带refresh_token调用中间件接口获取新的access_token;3.中间件接受刷新token的请求后,检查refresh_token是否过期。如过期,拒绝刷新,客户端收到该状态后,跳转到登录页;如未过期,生成新的access_token和refresh_token并返回给客户端(如有可能,让旧的refresh_token失效),客户端携带新的access_token重新调用上面的资源接口。4.客户端退出登录或修改密码后,调用中间件注销旧的token(使access_token和refresh_token失效),同时清空客户端的access_token和refresh_toke。
后端表id user_id client_id client_secret refresh_token expire_in create_date del_flag
2.0实现
场景: access_token访问资源 refresh_token授权访问 设置固定时间X必须重新登录
1.登录成功,后台jwt生成access_token(jwt有效期30分钟)和refresh_token(jwt有效期15天),并缓存到redis(hash-key为token,sub-key为手机号,value为设备唯一编号(根据手机号码,可以人工废除全部token,也可以根据sub-key,废除部分设备的token。),设置过期时间为1个月,保证最终所有token都能删除),返回后,客户端缓存此两种token;2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果token超时,中间件删除access_token(废除);客户端再次携带refresh_token调用中间件接口获取新的access_token;3.中间件接受刷新token的请求后,检查refresh_token是否过期。如过期,拒绝刷新,删除refresh_token(废除); 客户端收到该状态后,跳转到登录页;如未过期,检查缓存中是否有refresh_token(是否被废除),如果有,则生成新的access_token并返回给客户端,客户端接着携带新的access_token重新调用上面的资源接口。4.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token和refresh_token(废除)),同时清空客户端侧的access_token和refresh_toke。5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。6.以上3刷新access_token可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(拒绝的场景:失效,长时间未登录,频繁刷新)
2.0 变动1.登录2.登录拦截器3.增加刷新access_token接口4.退出登录5.修改密码
3.0实现
场景:自动续期 长时间未使用需重新登录
1.登录成功,后台jwt生成access_token(jwt有效期30分钟),并缓存到redis(hash-key为access_token,sub-key为手机号,value为设备唯一编号(根据手机号码,可以人工废除全部token),设置access_token过期时间为7天,保证最终所有token都能删除),返回后,客户端缓存此token;
2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果token超时,中间件删除access_token(废除),同时生成新的access_token并返回。客户端收到新的access_token,再次请求接口资源。
3.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token(废除)),同时清空客户端侧的access_token。
4.以上2 可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(拒绝的场景:长时间未登录,频繁刷新)
5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。
3.0 变动
1.登录2.登录拦截器3.退出登录4.修改密码
1.3 场景:token过期重新登录 长时间未使用需重新登录
1.登录成功,后台jwt生成access_token(jwt有效期7天),并缓存到redis,key为 “user_id:access_token”,value为access_token(根据用户id,可以人工废除指定用户全部token),设置缓存过期时间为7天,保证最终所有token都能删除,请求返回后,客户端缓存此access_token;
2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果token超时,中间件删除access_token(废除),同时生成新的access_token并返回。客户端收到新的access_token,再次请求接口资源。
3.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token(废除)),同时清空客户端侧的access_token。
4.以上2 可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(拒绝的场景:长时间未登录,频繁刷新)
5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。
1.3 变动
1.登录2.登录拦截器3.退出登录4.修改密码
2.0 场景: access_token访问资源 refresh_token授权访问 设置固定时间X必须重新登录
1.登录成功,后台jwt生成access_token(jwt有效期30分钟)和refresh_token(jwt有效期15天),并缓
存到redis(hash-key为token,sub-key为手机号,value为设备唯一编号(根据手机号码,可以人工废除全
部token,也可以根据sub-key,废除部分设备的token。),设置过期时间为1个月,保证最终所有token都
能删除),返回后,客户端缓存此两种token;
2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果
token超时,中间件删除access_token(废除);客户端再次携带refresh_token调用中间件接口获取新的
access_token;
3.中间件接受刷新token的请求后,检查refresh_token是否过期。
如过期,拒绝刷新,删除refresh_token(废除); 客户端收到该状态后,跳转到登录页;
如未过期,检查缓存中是否有refresh_token(是否被废除),如果有,则生成新的access_token并返回给
客户端,客户端接着携带新的access_token重新调用上面的资源接口。
4.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token和refresh_token(
废除)),同时清空客户端侧的access_token和refresh_toke。
5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。
6.以上3刷新access_token可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(
拒绝的场景:失效,长时间未登录,频繁刷新)
2.0 变动
1.登录
2.登录拦截器
3.增加刷新access_token接口
4.退出登录
5.修改密码
3.0 场景:自动续期 长时间未使用需重新登录
1.登录成功,后台jwt生成access_token(jwt有效期30分钟),并缓存到redis(hash-key为
access_token,sub-key为手机号,value为设备唯一编号(根据手机号码,可以人工废除全部token,也可以
根据sub-key,废除部分设备的token。),设置access_token过期时间为1个月,保证最终所有token都能删
除),返回后,客户端缓存此token;
2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果
token超时,中间件删除access_token(废除),同时生成新的access_token并返回。客户端收到新的
access_token,
再次请求接口资源。
3.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token(废除)),同时清
空客户端侧的access_token。
4.以上2 可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(拒绝的场景:长
时间未登录,频繁刷新)
5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。
3.0 变动
1.登录
2.登录拦截器
3.退出登录
4.修改密码
4.0 场景:token过期重新登录 长时间未使用需重新登录
1.登录成功,后台jwt生成access_token(jwt有效期7天),并缓存到redis,key为
“user_id:access_token” + 用户id,value为access_token(根据用户id,可以人工废除指定用户全部
token),设置缓存过期时间为7天,保证最终所有token都能删除,请求返回后,客户端缓存此
access_token;
2.使用access_token请求接口资源,校验成功且redis中存在该access_token(未废除)则调用成功;如果
token超时,中间件删除access_token(废除),同时生成新的access_token并返回。客户端收到新的
access_token,
再次请求接口资源。
3.客户端退出登录或修改密码后,调用中间件注销旧的token(中间件删除access_token(废除)),同时清
空客户端侧的access_token。
4.以上2 可以增加根据登录时间判断最长X时间必须重新登录,此时则拒绝刷新token。(拒绝的场景:长
时间未登录,频繁刷新)
5.如手机丢失,可以根据手机号人工废除指定用户设备关联的token。
4.0 变动
1.登录
2.登录拦截器
3.退出登录
4.修改密码
最终实现
后端
关于接口token生成器和后端如何生成token的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
相关阅读
更多
- gate.io云下载 gate.io的app 05-10
- gate.io老版下载 gate.io最新版 05-10
- gate.io兼职下载 gate.io是怎么赚钱的 05-10
- 华为下载gate.io 华为下载软件需要输入密码怎么设置 05-10
- gate.io新版下载 gate.io4.6.1 05-10
- gate.io币下载 gate.io什么币 05-10
- gate.io最新下载 gate.io.app 05-10
- gate.io4.6.6下载 gate.io-android.apk.1.1.1 05-10
- gate.io测试下载 gate.iochain测试网地址 05-10
- gate.io下载ex OkEX下载app 05-10
- ios gate.io下载 gate.io app官方苹果版 05-10
- gate.io币下载 gate.io币官网 05-10
- gate.io下载 ios gate.io官方网站ios 05-10
- gate.io下载后 gate.io客户端怎么了 05-10
猜你喜欢
-
- 安卓12正式版安装包
- 类型:[db:筛选栏目]
- 安卓12安装包下载 安卓12正式版安装包
-
- 荣耀平板V7升级推送Magic UI 5.0.0.122版本安装包
- 类型:[db:筛选栏目]
- 荣耀平板V7升级Magic UI 5.0.0.122版本下载 荣耀平板V7升级推送Magic UI 5.0.0.122版本安装包
-
- 谷歌安卓Android 12正式版官方更新
- 类型:[db:筛选栏目]
- 谷歌 Android 12正式版下载 谷歌安卓Android 12正式版官方更新
-
- 山东农机补贴最新版本
- 类型:[db:筛选栏目]
- 山东农机补贴 民生 补贴 申请 山东农机补贴最新版本下载
-
- 3d风水罗盘官方免费(3d罗盘指南针)
- 类型:[db:筛选栏目]
- 3d风水罗盘 指南针 坐标 3d风水罗盘官方免费(3d罗盘指南针)下载
-
- 黑鲨散热器app
- 类型:[db:筛选栏目]
- 黑鲨散热器app 黑鲨散热器app下载 黑鲨散热器app安卓版下载
热门资讯
- 1 中国广电手机资费公布:4G、5G最低19元月租套餐
- 2 不停追风口的360,元宇宙“N世界”能否装下周鸿祎的野心?
- 3 全球浏览器占比排名:第一有近70%人在用 毫无竞争对手
- 4 中国联通华为P50 Pro手机5G通信壳正式开售 售价799元
- 5 孩子居家、上网课,如何做到身心健康?权威机构支招
- 6 魔兽世界黑盒工坊打不开解决办法 WLK前夕黑盒工坊网络错误怎么办
- 7 中国声明的5G标准必要专利达1.8万项
- 8 vivo Y72t上架官网:主打千元5G长续航
- 9 深信服“离职倾向分析”专利曝光:能通过公司网络监控员工上网行为
- 10 亚马逊电子书退出国内市场 程序员开发Kindle助手:一键下载保存
应用推荐
换一换
下载排行
更多