jwt在项目中使用

main
topsun 2 years ago
parent c93e6bf479
commit 166f53b365

@ -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";
}

@ -0,0 +1,11 @@
package com.internal.dto;
import lombok.Data;
@Data
public class TokenResult {
private String passengerPhone;
private String identity;
}

@ -5,6 +5,7 @@ import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim; import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.DecodedJWT;
import com.internal.dto.TokenResult;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -15,12 +16,15 @@ public class JwtUtils {
//盐 //盐
private static final String SIGN = "CPFTAXI0908%$"; 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 //生成token
public static String generatorToken(String passengerPhone) { public static String generatorToken(String passengerPhone,String identity) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put(JWT_KEY,passengerPhone); map.put(JWT_KEY_PHONE,passengerPhone);
map.put(JWT_KEY_IDENTITY,identity);
//token过期时间 //token过期时间
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1); calendar.add(Calendar.DATE, 1);
@ -43,19 +47,23 @@ public class JwtUtils {
// Map<String, String> map = new HashMap<>(); // Map<String, String> map = new HashMap<>();
// map.put("name", "zhang san"); // map.put("name", "zhang san");
// map.put("age", "19"); // map.put("age", "19");
String s = generatorToken("1312312312"); String s = generatorToken("1312312312","1");
System.out.println("生成的token: " + s); System.out.println("生成的token: " + s);
String jwtStr = parseToken(s); TokenResult tokenResult = parseToken(s);
System.out.println("解析Token:" + jwtStr); System.out.println("解析Token:" + tokenResult.getIdentity());
} }
//解析Token //解析Token
public static String parseToken(String token) { public static TokenResult parseToken(String token) {
DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN)) DecodedJWT decodedJWT = JWT.require(Algorithm.HMAC256(SIGN))
.build().verify(token); .build().verify(token);
Claim claim = decodedJWT.getClaim(JWT_KEY); Claim claimPhone = decodedJWT.getClaim(JWT_KEY_PHONE);
return claim != null ? claim.toString() : ""; Claim claimIdentity = decodedJWT.getClaim(JWT_KEY_IDENTITY);
TokenResult tokenResult = new TokenResult();
tokenResult.setIdentity(claimIdentity.toString());
tokenResult.setPassengerPhone(claimPhone.toString());
return tokenResult;
} }

Loading…
Cancel
Save