diff --git a/login-service/src/main/java/com/yapp/crew/config/JwtUtils.java b/login-service/src/main/java/com/yapp/crew/config/JwtUtils.java index 52a2d4c..ecf3705 100644 --- a/login-service/src/main/java/com/yapp/crew/config/JwtUtils.java +++ b/login-service/src/main/java/com/yapp/crew/config/JwtUtils.java @@ -1,5 +1,6 @@ package com.yapp.crew.config; +import com.yapp.crew.domain.errors.TokenRequiredException; import com.yapp.crew.domain.model.User; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jws; @@ -56,28 +57,21 @@ private Date generateExpirationDate(Date now) { return calendar.getTime(); } - public String getUserIdFromToken(String token) { - token = token.replace(prefix + " ", ""); - log.info("remove prefix token: " + token); - - String userId; + public long getUserIdFromToken(String token) { try { - final Claims claims = getClaimsFromToken(token); - userId = String.valueOf(claims.get("userId")); + final Claims claims = getClaimsFromToken(token).getBody(); + long userId = Long.parseLong(String.valueOf(claims.get("userId"))); log.info("userId from token: " + userId); + return userId; } catch (Exception e) { - userId = null; + throw new TokenRequiredException("[Auto Login Service] Token is required but wasn't sent"); } - return userId; } public Date getExpirationFromToken(String token) { - token = token.replace(prefix + " ", ""); - log.info("remove prefix token: " + token); - Date expiration; try { - final Claims claims = getClaimsFromToken(token); + final Claims claims = getClaimsFromToken(token).getBody(); expiration = claims.getExpiration(); log.info("expiration from token: " + expiration.toString()); } catch (Exception e) { @@ -86,14 +80,16 @@ public Date getExpirationFromToken(String token) { return expiration; } - private Claims getClaimsFromToken(String token) { - Claims claims; + private Jws getClaimsFromToken(String token) { + token = token.replace(prefix + " ", ""); + log.info("remove prefix token: " + token); + + Jws claims; try { claims = Jwts.parserBuilder() .setSigningKey(Keys.hmacShaKeyFor(secret.getBytes())) .build() - .parseClaimsJws(token) - .getBody(); + .parseClaimsJws(token); } catch (Exception e) { claims = null; } diff --git a/login-service/src/main/java/com/yapp/crew/service/SignInService.java b/login-service/src/main/java/com/yapp/crew/service/SignInService.java index 2a44160..b39836d 100644 --- a/login-service/src/main/java/com/yapp/crew/service/SignInService.java +++ b/login-service/src/main/java/com/yapp/crew/service/SignInService.java @@ -50,7 +50,7 @@ public UserAuthResponse signIn(LoginUserInfo loginUserInfo) { } public UserAuthResponse autoSignIn(String token) { - long userId = Long.parseLong(jwtUtils.getUserIdFromToken(token)); + long userId = jwtUtils.getUserIdFromToken(token); User user = getUserByUserId(userId) .orElseThrow(() -> new UserNotFoundException(userId)); diff --git a/login-service/src/main/java/com/yapp/crew/service/TokenService.java b/login-service/src/main/java/com/yapp/crew/service/TokenService.java index 7f7fb02..98650cb 100644 --- a/login-service/src/main/java/com/yapp/crew/service/TokenService.java +++ b/login-service/src/main/java/com/yapp/crew/service/TokenService.java @@ -29,7 +29,7 @@ public HttpHeaders setToken(User user) { public HttpHeaders refreshToken(User user, String token) { String refreshToken = null; if (jwtUtil.verifyToken(token)) { - refreshToken = token; + refreshToken = "Bearer " + token; } else { refreshToken = jwtUtil.createToken(user); } diff --git a/login-service/src/main/java/com/yapp/crew/service/WithdrawService.java b/login-service/src/main/java/com/yapp/crew/service/WithdrawService.java index faa3fb7..ce6d234 100644 --- a/login-service/src/main/java/com/yapp/crew/service/WithdrawService.java +++ b/login-service/src/main/java/com/yapp/crew/service/WithdrawService.java @@ -26,7 +26,7 @@ public WithdrawService(UserRepository userRepository, JwtUtils jwtUtils) { @Transactional public UserAuthResponse withdraw(String token) { - long userId = Long.parseLong(jwtUtils.getUserIdFromToken(token)); + long userId = jwtUtils.getUserIdFromToken(token); User user = getUserByUserId(userId) .orElseThrow(() -> new UserNotFoundException(userId));