我是靠谱客的博主 魁梧蜻蜓,最近开发中收集的这篇文章主要介绍1.12. token工具12.token工具,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

12.token工具

1.认识token(令牌)

token字符串:
	eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJKb2UifQ.1KP0SsvENi7Uz1oQc07aXTL7kpQG5jBNIybqr60AlD4
header.body.对body按照header中指定的算法进行加密后的加密字符串
header:指定加密算法,比如HS256;
body:自定义的声明信息;(唯一的用户名或者手机号或者用户id,签发的时间,过期时间,签发机构。)
签名:对body按照指定的hs256算法+指定的密钥得到了加密后的信息。

2.jjwt组件生成token令牌字符串

1.添加依赖包jjwt-api;jjwt-impl;jjwt-jackson;jackson的3个jar包
2.使用对称算法HS256生成密钥:
	Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
3.指定body里的信息生成token字符串:
	 String jws = Jwts.builder().setClaims(Map).setIssuedAt(Date).setExpiration(Date).signWith(key).compact();
4.反向解析token字符串:
Jws<Claims> jws = Jwts.parserBuilder()
                .setSigningKey(密钥).build().parseClaimsJws(token字符串);     

3.token的使用

  • 通过密保邮箱找回密码:

用户输入邮箱账号,点击找回密码,在服务端接口中根据邮箱账号去查找用户信息,找不到用户信息,则提示邮箱未注册;如果找到用户信息(uid:1,uname:’fyt‘,uphone:‘123123‘),生成一个30分钟有效的token字符串,token中的声明信息包含用户手机号, 向邮箱中发送一个url链接(http://域名/resetpwd?token=生成的token字符串),当进入resetpwd接口时,要判断token合法性(30分钟内,有手机号,检查黑名单),

  • 使用token来保存用户登录状态信息:

用户登录–>登录成功后由服务器生成1周有效的token字符串,token中含有用户名信息。把token发送至客户端(浏览器,android)–>客户端把token保存本地浏览器(localstorage)–>以后所有请求都带token发送服务端–>服务端解析token合法性–>服务端还要检测token剩余有效时间,去刷新生成新的token

0.在CorsFilter过滤器中配置exposedHeaders=“token” 
	<property name="exposedHeaders" value="token"></property><!--暴露的响应头-->
1.登录成功后,生成token,放在响应头返回客户端

token的隐患:

一旦服务器签发token,在有效期内如果token泄露,就可以使用tonken伪装登录系统。即使注销登录仍然有问题。注销后服务端维护token黑名单列表。

其它:

对称加密(加密密钥与解密密钥相同):明文信息+加密密钥+加密算法=密文信息 密文信息+解密密钥+解密算法=明文信息

非对称加密(加密密钥与解密密钥不同):明文信息+加密密钥+加密算法=密文信息 密文信息+解密密钥+解密算法=明文信息 (https协议中采用非对称加密)

http:用户请求–服务端接收数据-逻辑处理-服务器返回数据–用户接收

https:需要在tomcat下部署ssl证书(非对称的公钥),浏览器先去服务器拿去ssl证书到本地,安装浏览器。

​ 发起请求,把请求数据按照公钥进行加密,服务端收数据,按照私钥进行解密;逻辑处理返回数据;返回数据按照私钥加密,发送客户端,客户端浏览器拿公钥解密。

最后

以上就是魁梧蜻蜓为你收集整理的1.12. token工具12.token工具的全部内容,希望文章能够帮你解决1.12. token工具12.token工具所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部