From 386ba7e42ce0e51e70608d33750a7d5d37a161f6 Mon Sep 17 00:00:00 2001 From: yh <1844516659@qq.com> Date: Sat, 16 Jul 2022 16:07:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E6=BB=B4=E5=87=BA=E8=A1=8C=E7=BD=91?= =?UTF-8?q?=E7=BA=A6=E8=BD=A62022-=E5=BC=95=E5=85=A5JWT=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E4=BC=A0=E5=85=A5Map=E7=B1=BB=E5=9E=8B=E9=83=BD?= =?UTF-8?q?=E4=B8=BAString=E7=9A=84=E6=9C=89=E6=95=88=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internalcommon/util/JwtUtils.java | 55 +++++++++++++++++++ pom.xml | 6 ++ 2 files changed, 61 insertions(+) create mode 100644 internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java diff --git a/internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java b/internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java new file mode 100644 index 0000000..f5ada07 --- /dev/null +++ b/internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java @@ -0,0 +1,55 @@ +package com.mashibing.internalcommon.util; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTCreator; +import com.auth0.jwt.algorithms.Algorithm; + +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class JwtUtils { + + // 盐:服务端本地私有 + private static final String SIGN = "CPFmsb%!@SSAE"; + + // 提供 公共获取 token字符串 + public static String gerneratorToken(Map map){ + + // 准备 token过期时间 Date 类型 + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DATE,1); + Date date = calendar.getTime(); + + // 使用 JWT 创建 token合成对象 builder + JWTCreator.Builder builder = JWT.create(); + + // 将 map 中有效数据部份 遍历合成到 builder中 + if(map == null && map.size() <= 0){// 有效数据为空,直接返回空值 + return null; + } + map.forEach( + (k,v)-> { + builder.withClaim(k,v); + } + ); + // 设置 超时时间 + builder.withExpiresAt(date); + + // 使用 builder对象的 sign 方法生成 token + String sign = builder.sign(Algorithm.HMAC256(SIGN)); + + return sign; + } + + + public static void main (String [ ] args ) { + Map map = new HashMap<>(); + map.put("name", "zhang san"); + map.put("age", "18"); + String s = gerneratorToken(map); + System.out.println("生成的token:" + s); + } + +} diff --git a/pom.xml b/pom.xml index 7a8daf5..bfc4480 100644 --- a/pom.xml +++ b/pom.xml @@ -71,6 +71,12 @@ lombok 1.18.20 + + + com.auth0 + java-jwt + 3.14.0 +