Skip to content

Commit

Permalink
Merge pull request #47 from dnd-side-project/feature/#45
Browse files Browse the repository at this point in the history
signtoken의 social type 추출한는 방법 변경 #45
  • Loading branch information
strangehoon authored Feb 23, 2024
2 parents d2fff4e + ef1eab1 commit c363cc3
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public TokensResponseDto loginGoogle(String code) throws JsonProcessingException
User googleUser = userRepository.findBySocialId(googleUserInfo.id()).orElse(null);

if (googleUser == null) {
String signToken = jwtProvider.generateSignToken(googleUserInfo);
String signToken = jwtProvider.generateSignToken(googleUserInfo, "GOOGLE");
throw new SignInException(NEED_TO_SIGNUP, new SignTokenResponseDto(signToken));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public TokensResponseDto loginKakao(String code) throws JsonProcessingException
User kakaoUser = userRepository.findBySocialId(kakaoUserInfo.id()).orElse(null);

if (kakaoUser == null) {
String signToken = jwtProvider.generateSignToken(kakaoUserInfo);
String signToken = jwtProvider.generateSignToken(kakaoUserInfo, "KAKAO");
throw new SignInException(NEED_TO_SIGNUP,new SignTokenResponseDto(signToken));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sendback.domain.user.dto;

public record SigningAccount(
public record SigningUser(
String socialId,
String socialname,
String profileImageUrl,
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/com/sendback/domain/user/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sendback.domain.user.entity;

import com.sendback.domain.user.dto.SigningAccount;
import com.sendback.domain.user.dto.SigningUser;
import com.sendback.domain.user.dto.request.SignUpRequestDto;
import com.sendback.domain.user.dto.request.UpdateUserInfoRequestDto;
import com.sendback.global.common.BaseEntity;
Expand Down Expand Up @@ -96,16 +96,16 @@ public static User of(Long userId, SocialType socialType, String socialId, Strin
.build();
}

public static User of(SigningAccount signingAccount, SignUpRequestDto signUpRequestDto) {
public static User of(SigningUser signingUser, SignUpRequestDto signUpRequestDto) {
return User.builder()
.socialType(SocialType.toEnum(signingAccount.socialType()))
.socialId(signingAccount.socialId())
.email(signingAccount.email())
.socialType(SocialType.toEnum(signingUser.socialType()))
.socialId(signingUser.socialId())
.email(signingUser.email())
.level(Level.ONE)
.socialname(signingAccount.socialname())
.socialname(signingUser.socialname())
.gender(Gender.toEnum(signUpRequestDto.gender()))
.birthday(signUpRequestDto.birthday())
.profileImageUrl(signingAccount.profileImageUrl())
.profileImageUrl(signingUser.profileImageUrl())
.career(Career.toEnum(signUpRequestDto.career()))
.nickname(signUpRequestDto.nickname())
.build();
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/com/sendback/domain/user/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import com.sendback.domain.like.repository.LikeRepository;
import com.sendback.domain.project.entity.Project;
import com.sendback.domain.project.repository.ProjectRepository;
import com.sendback.domain.user.dto.SigningAccount;
import com.sendback.domain.user.dto.SigningUser;
import com.sendback.domain.user.dto.request.UpdateUserInfoRequestDto;
import com.sendback.domain.user.dto.response.*;
import com.sendback.domain.user.dto.request.SignUpRequestDto;
Expand Down Expand Up @@ -51,11 +51,11 @@ public Token signUpUser(@RequestBody SignUpRequestDto signUpRequestDto) {
throw new BadRequestException(DUPLICATED_NICKNAME);
}
jwtProvider.validateSignToken(signUpRequestDto.signToken());
SigningAccount signingAccount = jwtProvider.getSignUserInfo(signUpRequestDto.signToken());
// if(userRepository.findBySocialId(signingAccount.socialId()).isPresent()){
// throw new BadRequestException(PREVIOUS_REGISTERED_USER);
// }
User user = User.of(signingAccount, signUpRequestDto);
SigningUser signingUser = jwtProvider.getSignUserInfo(signUpRequestDto.signToken());
if(userRepository.findBySocialId(signingUser.socialId()).isPresent()){
throw new BadRequestException(PREVIOUS_REGISTERED_USER);
}
User user = User.of(signingUser, signUpRequestDto);
User savedUser = userRepository.save(user);
List<Field> fieldList = signUpRequestDto.fields().stream()
.map(field -> Field.of(FieldName.toEnum(field), user))
Expand Down
16 changes: 6 additions & 10 deletions src/main/java/com/sendback/global/config/jwt/JwtProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.sendback.domain.auth.dto.SocialUserInfo;
import com.sendback.domain.auth.dto.Token;
import com.sendback.domain.user.dto.SigningAccount;
import com.sendback.domain.user.dto.SigningUser;
import com.sendback.global.config.redis.RedisService;
import com.sendback.global.exception.type.SignInException;
import com.sendback.global.exception.type.UnAuthorizedException;
Expand Down Expand Up @@ -55,7 +55,7 @@ public Token issueToken(Long userId) {
}

//SignToken 생성
public String generateSignToken(SocialUserInfo socialUserInfo) {
public String generateSignToken(SocialUserInfo socialUserInfo, String type) {
Date now = new Date(System.currentTimeMillis());
final Date expiration = new Date(now.getTime() + SIGN_TOKEN_EXPIRE_TIME);
return Jwts.builder()
Expand All @@ -64,7 +64,7 @@ public String generateSignToken(SocialUserInfo socialUserInfo) {
.claim("email", socialUserInfo.email())
.claim("socialname", socialUserInfo.socialname())
.claim("profileImageUrl", socialUserInfo.profileImageUrl())
.claim("type", "SIGN_TOKEN")
.claim("type", type)
.setIssuedAt(now)
.setExpiration(expiration)
.signWith(getSigningKey(), SignatureAlgorithm.HS256)
Expand All @@ -85,7 +85,7 @@ private String generateToken(Long userId, boolean isAccessToken) {
.compact();
}

public SigningAccount getSignUserInfo(String signToken) {
public SigningUser getSignUserInfo(String signToken) {
Claims body = Jwts.parserBuilder()
.setSigningKey(getSigningKey())
.build()
Expand All @@ -95,12 +95,8 @@ public SigningAccount getSignUserInfo(String signToken) {
String socialname = (String)body.get("socialname");
String profileImageUrl = (String)body.get("profileImageUrl");
String email = (String)body.get("email");
String socialType;
if(email.contains("gmail"))
socialType = "google";
else
socialType = "kakao";
return new SigningAccount(id, socialname, profileImageUrl, email, socialType);
String type = (String)body.get("type");
return new SigningUser(id, socialname, profileImageUrl, email, type);
}

public void validateSignToken(String signToken){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sendback.domain.user.fixture;

import com.sendback.domain.user.dto.SigningAccount;
import com.sendback.domain.user.dto.SigningUser;
import com.sendback.domain.user.dto.request.SignUpRequestDto;
import com.sendback.domain.user.entity.User;
import com.sendback.domain.user.entity.SocialType;
Expand All @@ -27,7 +27,7 @@ public class UserFixture {
private static final Gender GENDER = MALE;
private static final String BIRTHDAY = "2000.01.01";
private static final Career CAREER = BACKEND;
public static final SigningAccount MOCK_SIGNING_ACCOUNT = new SigningAccount("123", "mock",
public static final SigningUser MOCK_SIGNING_ACCOUNT = new SigningUser("123", "mock",
"mock_profile", "[email protected]", "kakao");
public static final SignUpRequestDto MOCK_SIGN_UP_REQUEST_DTO = new SignUpRequestDto("mock_user", "2000.01.01",
"남자", "백엔드", Arrays.asList("예술/대중문화", "게임"), "valid signToken");
Expand Down

0 comments on commit c363cc3

Please sign in to comment.