From af9dda5f5167174c68e6ca44477db1aa00b823cd Mon Sep 17 00:00:00 2001 From: yh <1844516659@qq.com> Date: Sat, 16 Jul 2022 16:22:43 +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-=E4=BD=BF=E7=94=A8JWT=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E4=BC=A0=E5=85=A5token=E8=8E=B7=E5=8F=96=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E6=9C=89=E6=95=88=E6=95=B0=E6=8D=AE=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internalcommon/util/JwtUtils.java | 50 ++++++++++++------- 1 file changed, 31 insertions(+), 19 deletions(-) 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 index f5ada07..1daad93 100644 --- a/internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java +++ b/internal-common/src/main/java/com/mashibing/internalcommon/util/JwtUtils.java @@ -3,19 +3,22 @@ package com.mashibing.internalcommon.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator; import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.interfaces.Claim; +import com.auth0.jwt.interfaces.DecodedJWT; 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"; + + private static final String TOKEN_KEY = "passengerPhone"; + // 提供 公共获取 token字符串 - public static String gerneratorToken(Map map){ + public static String gerneratorToken(String passengerPhone){ // 准备 token过期时间 Date 类型 Calendar calendar = Calendar.getInstance(); @@ -25,15 +28,8 @@ public class JwtUtils { // 使用 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中 + builder.withClaim(TOKEN_KEY,passengerPhone); // 设置 超时时间 builder.withExpiresAt(date); @@ -43,13 +39,29 @@ public class JwtUtils { 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); + /** + * 网约车项目 解析和比对 传入token 返回 初始有效数据内容 + * @param token + * @return + */ + public static String parseToken(String token){ + // 通过 JWT 的 required 以某种加密算法校验后 进行比对 + DecodedJWT verify = JWT.require(Algorithm.HMAC256(SIGN)).build().verify(token); + // 获取有效数据内容 + Claim claim = verify.getClaim(TOKEN_KEY); + return claim.toString(); } + + +// public static void main (String [ ] args ) { +// +// String tmpPhone = "13912345678"; +// String token = gerneratorToken(tmpPhone); +// System.out.println("号码 "+tmpPhone+",生成的token = " + token); +// String s = parseToken(token); +// System.out.println("根据生成token解析出的有效数据是 " + s); +// +// } + }