Skip to content

Commit

Permalink
Merge pull request #89 from BLink-Org/dev
Browse files Browse the repository at this point in the history
Merge: ํฌ๋กฌ ์ต์Šคํ…์…˜ ๋กœ๊ทธ์ธ ๋ฐ˜์˜
  • Loading branch information
suminnnnn authored Mar 3, 2025
2 parents df3e10a + 6d0c9c2 commit d44ca75
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 3 deletions.
7 changes: 7 additions & 0 deletions src/main/java/cmc/blink/domain/user/business/UserMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ public static User toUser(AuthRequest.AppleLoginRequestDto requestDto, String pr
.build();
}

public static User toUser(AuthRequest.EmailLoginRequestDto requestDto, String provider) {
return User.builder()
.email(requestDto.getEmail())
.provider(provider)
.build();
}

public static UserResponse.UserInfo toUserInfo(User user, boolean deleteRequest, LocalDate deleteRequestDate, int linkCount, int pinCount, int folderCount) {
return UserResponse.UserInfo.builder()
.email(user.getEmail())
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/cmc/blink/global/security/AuthController.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,10 @@ public ApiResponseDto<?> logout(HttpServletRequest httpServletRequest, @RequestB

return ApiResponseDto.of("ํ† ํฐ ์žฌ๋ฐœ๊ธ‰์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", authService.reissue(reissueRequestDto));
}

@PostMapping("/login/email")
@Operation(summary = "ํฌ๋กฌ ์ต์Šคํ…์…˜ ๋กœ๊ทธ์ธ API", description = "ํฌ๋กฌ ์ต์Šคํ…์…˜์šฉ ๋กœ๊ทธ์ธ API์ž…๋‹ˆ๋‹ค.")
public ApiResponseDto<AuthResponse.LoginResponseDto> login(@RequestBody AuthRequest.EmailLoginRequestDto requestDto) {
return ApiResponseDto.of(authService.chromeExtensionLogin(requestDto));
}
}
36 changes: 35 additions & 1 deletion src/main/java/cmc/blink/global/security/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import cmc.blink.domain.user.persistence.redis.RefreshToken;
import cmc.blink.domain.user.persistence.redis.RefreshTokenRepository;
import cmc.blink.global.exception.JwtAuthenticationException;
import cmc.blink.global.exception.NotFoundException;
import cmc.blink.global.exception.constant.ErrorCode;
import cmc.blink.global.security.client.AppleAuthClient;
import cmc.blink.global.security.client.GoogleTokenVerifierClient;
Expand Down Expand Up @@ -133,7 +134,40 @@ public AuthResponse.LoginResponseDto appleLogin(AuthRequest.AppleLoginRequestDto

}

public String getAppleAccountId(String identityToken)

@Transactional
public AuthResponse.LoginResponseDto chromeExtensionLogin(AuthRequest.EmailLoginRequestDto dto) {

Optional<User> optionalUser = userQueryAdapter.findByEmail(dto.getEmail());

String language = dto.getLanguage();

User user;

if(optionalUser.isEmpty()){
user = UserMapper.toUser(dto, "chromeExtension");
userCommandAdapter.updateLastLoginTime(user);

linkService.saveDefaultLink(user, language);
}else{
user = optionalUser.get();

user.updateLoginTime();
userCommandAdapter.save(user);
}

UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
user.getEmail(),
null,
Collections.singleton(new SimpleGrantedAuthority(Role.USER.getKey()))
);

Token token = tokenProvider.generateToken(authentication);

return AuthMapper.toLoginResponseDto(token);
}

private String getAppleAccountId(String identityToken)
throws JsonProcessingException, AuthenticationException, NoSuchAlgorithmException,
InvalidKeySpecException {
Map headers = jwtValidator.parseHeaders(identityToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class SecurityConfig {
"/swagger", "/swagger-ui.html", "/swagger-ui/**", "/api-docs", "/api-docs/**", "/v3/api-docs/**",
"/v3/api-docs/swagger-config", "/v3/api-docs",
"/api/auth/login/google", "/api/auth/login/apple", "/api/auth/reissue",
"/health", "/favicon.ico"
"/health", "/favicon.ico", "/api/auth/login/email"
};

@Bean
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/cmc/blink/global/security/dto/AuthRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,13 @@ public static class LogoutRequestDto {
public static class ReissueRequestDto {
String refreshToken;
}

@Getter
public static class EmailLoginRequestDto {

@Schema(description = "์‹œ์Šคํ…œ ์„ค์ • ์–ธ์–ด", example = "ํ•œ๊ตญ์–ด: KO / ์˜์–ด: EN")
String language;

String email;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class JwtAuthFilter extends OncePerRequestFilter {
private static final String[] excludePath = {
"/swagger", "/swagger-ui.html", "/swagger-ui/**", "/api-docs", "/api-docs/**", "/v3/api-docs/**", "/v3/api-docs/swagger-config",
"/api/auth/login/google", "/api/auth/login/apple", "/api/auth/reissue", "/v3/api-docs",
"/health", "/favicon.ico"
"/health", "/favicon.ico", "/api/auth/login/email"
};

@Override
Expand Down

0 comments on commit d44ca75

Please sign in to comment.