概述
Token校验可以使用拦截器或过滤器
一、JWT
1. Maven依赖
com.auth0
java-jwt
3.2.0
2. JWT工具类
package com.ruhuanxingyun.utils;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.ruhaunxingyun.commons.CommonConstant;
import java.io.UnsupportedEncodingException;
import java.util.Date;
/**
* @description: JWT工具类
* @author: ruphie
* @date: Create in 2019/12/20 17:29
* @company: ruhuanxingyun
*/
public class JwtUtils {
private final static String USERNAME = "username";
/**
* 生成token
*
* @param secret 密钥
* @param username 用户名
* @return token
*/
public static String sign(String secret, String username) throws UnsupportedEncodingException {
Date date = new Date(System.currentTimeMillis() + CommonConstant.EXPIRE_TIME);
Algorithm algorithm = Algorithm.HMAC256(secret);
String token = JWT.create()
.withClaim(USERNAME, username)
.withExpiresAt(date)
.sign(algorithm);
return token;
}
/**
* 根据token获取用户名
*
* @param token 令牌
* @return username
*/
public static String getUsername(String token) {
DecodedJWT decodedJWT = JWT.decode(token);
String username = decodedJWT.getClaim(USERNAME).asString();
return username;
}
/**
* 校验token
*
* @param secret 密钥
* @param username 用户名
* @param token token
* @return 是否合法
*/
public static boolean verify(String secret, String username, String token) {
try {
Algorithm algorithm = Algorithm.HMAC256(secret);
JWT.require(algorithm)
.withClaim(USERNAME, username)
.build()
.verify(token);
return true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return false;
}
}
二、JJWT
简介:为了更友好在JVM上使用JWT,它是基本于JWT, JWS, JWE, JWK框架的Java实现。
1. Maven依赖
io.jsonwebtoken
jjwt-api
0.11.2
io.jsonwebtoken
jjwt-impl
0.11.2
runtime
io.jsonwebtoken
jjwt-jackson
0.11.2
runtime
最后
以上就是阳光电话为你收集整理的java权限管理框架jwt_SpringBoot 整合JWT分布式权限控制的全部内容,希望文章能够帮你解决java权限管理框架jwt_SpringBoot 整合JWT分布式权限控制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复