From 166f53b3658f15c20cf5b42d7bf7eb80a8f91d2b Mon Sep 17 00:00:00 2001 From: topsun Date: Fri, 14 Apr 2023 15:46:55 +0800 Subject: [PATCH] =?UTF-8?q?=20jwt=E5=9C=A8=E9=A1=B9=E7=9B=AE=E4=B8=AD?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../internal/contant/IdentityConstant.java | 8 ++++++ .../java/com/internal/dto/TokenResult.java | 11 ++++++++ .../main/java/com/internal/util/JwtUtils.java | 26 ++++++++++++------- 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java create mode 100644 online-taxi-public/internal-common/src/main/java/com/internal/dto/TokenResult.java diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java b/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java new file mode 100644 index 0000000..643af2c --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/contant/IdentityConstant.java @@ -0,0 +1,8 @@ +package com.internal.contant; + +public class IdentityConstant { + + public static final String PASSENGER_IDENTITY = "1"; + + public static final String DRIVER_IDENTITY = "2"; +} diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/dto/TokenResult.java b/online-taxi-public/internal-common/src/main/java/com/internal/dto/TokenResult.java new file mode 100644 index 0000000..b11bcf4 --- /dev/null +++ b/online-taxi-public/internal-common/src/main/java/com/internal/dto/TokenResult.java @@ -0,0 +1,11 @@ +package com.internal.dto; + +import lombok.Data; + +@Data +public class TokenResult { + + private String passengerPhone; + + private String identity; +} diff --git a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java index 52b74e3..d3c7048 100644 --- a/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java +++ b/online-taxi-public/internal-common/src/main/java/com/internal/util/JwtUtils.java @@ -5,6 +5,7 @@ import com.auth0.jwt.JWTCreator; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.DecodedJWT; +import com.internal.dto.TokenResult; import java.util.Calendar; import java.util.Date; @@ -15,12 +16,15 @@ public class JwtUtils { //盐 private static final String SIGN = "CPFTAXI0908%$"; - private static final String JWT_KEY = "passengerPhone"; + private static final String JWT_KEY_PHONE = "passengerPhone"; + + private static final String JWT_KEY_IDENTITY = "identity"; //生成token - public static String generatorToken(String passengerPhone) { + public static String generatorToken(String passengerPhone,String identity) { Map map = new HashMap<>(); - map.put(JWT_KEY,passengerPhone); + map.put(JWT_KEY_PHONE,passengerPhone); + map.put(JWT_KEY_IDENTITY,identity); //token过期时间 Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 1); @@ -43,19 +47,23 @@ public class JwtUtils { // Map map = new HashMap<>(); // map.put("name", "zhang san"); // map.put("age", "19"); - String s = generatorToken("1312312312"); + String s = generatorToken("1312312312","1"); System.out.println("生成的token: " + s); - String jwtStr = parseToken(s); - System.out.println("解析Token:" + jwtStr); + TokenResult tokenResult = parseToken(s); + System.out.println("解析Token:" + tokenResult.getIdentity()); } //解析Token - public static String parseToken(String token) { + public static TokenResult parseToken(String token) { DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN)) .build().verify(token); - Claim claim = decodedJWT.getClaim(JWT_KEY); - return claim != null ? claim.toString() : ""; + Claim claimPhone = decodedJWT.getClaim(JWT_KEY_PHONE); + Claim claimIdentity = decodedJWT.getClaim(JWT_KEY_IDENTITY); + TokenResult tokenResult = new TokenResult(); + tokenResult.setIdentity(claimIdentity.toString()); + tokenResult.setPassengerPhone(claimPhone.toString()); + return tokenResult; }