摘要:介绍如何实现基于开放标准的身份验证方法,以在网络应用程序环境之间传输声明。 其他资源,例如用户登录信息,只有在用户身份信息认证成功后才能检索。 防止信息篡改最重要的作用包括三个部分。 公共部分 私有部分 签名部分。
1. 概述: (1.1) JWT (Json Web Token):
实现基于 JSON 的开放标准,用于在网络应用程序环境之间发送声明。
(1.2) JWT认证用户身份信息:
认证成功后只能获取用户登录等其他资源
(1.3)JWT最重要的作用:
防止伪造token信息
(1.4)JWT原理:由三部分组成:公共部分、私有部分、签名部分。 最后进行base64编码将三者结合起来得到JWT。
如图所示,
(1.4.1)公共部分
主要是, JWT的相关配置参数,如加密算法、格式类型、过期时间等。 P> (1.4.2)私有部分
用户根据实际需要定制的内容,实际封装的信息
UserInfo {用户ID,用户昵称NickName}
P>
(1.4.3)签名部分
Saltip:当前服务器IP地址!{在Linux上配置代理服务器IP}
如果主用户生成字符串加密{盐值}。
最终配置:key+salt+userInfo è token!
Base64编码:未加密,只是将显式信息转换为不可见的字符串即可。
但实际上,只要使用一些工具,就可以使用base64。 </p </p </p
因此,请不要输入任何与 JWT 相关的个人信息
官方网站:
JSON Web Tokens 简介 - jwt.iohttps://jwt.io/introduction
3.SpringBoot 集成 JWT: (2.1) pom.xml 文件:jjwt org.springframework.util.StringUtils 导入。 导入 java.util.Date; /** . public class JwtHelper { //基于expiry参数的Token public static String createToken(Long userId , String Username) { string token = jwts.builder () .setsubject("项目名称或其他") .setexpiration(new date(System.CurrenTtimemillis) ()) .Cl AIM("用户id", 用户id) .claim("用户名", 用户名) .signWith(SignatureAlgorithm.HS512, tokenSignKey) .compressWith(CompressionCodecs.GZIP) .compact();网址令牌。 ws = parseclaimsjws(token); Claims Claims = Claimsjws.getBody (); Return Userid.longvalue (); // 根据 token 字符串获取用户名getUserName(String token) { if(StringUtils.isEmpty(token)) return "" JwsclaimsJws = ClaimsJws(token);(); return (String)claims.get("userName"); public static void main(String[] args) { String token = JwtHelper.createToken(1L, "lucy"); System.out.println(JwtHelper.getUserId(token)); System.out.println(JwtHelper.getUserName(token)); 如果需要生成token,则调用JWT工具类生成token。 就是这样!
评论前必须登录!
注册