如何在springboot运行token?-创新互联

一、使用maven引入jjwt包


     io.jsonwebtoken
     jjwt
     0.6.0

二、生成token的方式

新建一个生成token的类

为开平等地区用户提供了全套网页设计制作服务,及开平网站建设行业解决方案。主营业务为成都做网站、网站建设、外贸营销网站建设、开平网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
package com.example.demo.controller;

import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;

public class CreateJwt {
   public static void main(String[] args) {
     //Jwts.builder()生成
     //Jwts.parser()验证
     JwtBuilder jwtBuilder =  Jwts.builder()
         .setId("123")
         .setSubject("梦阳")   //用户名
         .setIssuedAt(new Date())//登录时间
         .signWith(SignatureAlgorithm.HS256, "my-123").setExpiration(new Date(new Date().getTime()+60000))//设置过期时间
         .claim("role","admin"); //自定义属性
     //前三个为载荷playload 最后一个为头部 header
     System.out.println(jwtBuilder.compact());

   }

}

运行结果为:

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2NjYiLCJzdWIiOiLlsI_pqawiLCJpYXQiOjE1NjMyODU2MTB9.iKtLy0T5ZzvzS2sjgcs5WyuM7cofmnzxzml7wicrTnA

三、新建一个类来解码刚刚生成的token

package com.example.demo.controller;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;

import java.text.SimpleDateFormat;

//token的解析
//有状态登录  服务器端保存用户信息
//无状态登录  服务器端没有保存用户信息  无状态效率比有状态效率高
public class PraseJwtTest {
   public static void main(String[] args) {
     Claims claims = Jwts.parser()
         .setSigningKey("my-123")
         //.parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2NjYiLCJzdWIiOiLlsI_pqawiLCJpYXQiOjE1NjMyODU2MTB9.iKtLy0T5ZzvzS2sjgcs5WyuM7cofmnzxzml7wicrTnA")
         .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMjMiLCJzdWIiOiLmoqbpmLMiLCJpYXQiOjE1ODIwMDM5MzIsImV4cCI6MTU4MjAwMzk5Miwicm9sZSI6ImFkbWluIn0.vN0pcBVNIixcqp6MsSmGWWVyCc4uOkTpcd8MUDHcn4A")
         .getBody();
     System.out.println("用户id:"+claims.getId());
     System.out.println("用户名:"+claims.getSubject());
     System.out.println("用户时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(claims.getIssuedAt()));System.out.println("过期时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(claims.getExpiration()));
     System.out.println("用户角色:"+claims.get("role"));
   }
}

运行结果为:
用户id:123
用户名:梦阳
用户时间:2020-02-18 13:32:12
过期时间:2020-02-18 13:33:12
用户角色:admin

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:如何在springboot运行token?-创新互联
链接URL:http://ybzwz.com/article/pgsgp.html