기존 회원가입,로그인 서비스에 소셜로그인 합치기
2024. 7. 27. 10:41ㆍTIL
❎ 오늘의 진행상황
소셜 로그인용 dto 추가
package sparta.nbcamp.wachu.domain.member.dto
data class SocialSignUpRequest(
val nickname: String, // nickname을 넣은 이유는 동일한 소셜로그인으로 회원가입한 유저의 nickname이 기존 서비스 회원의 nickname과 중복됬을 경우를 고려했기 때문
val email: String,
)
service 추가
fun socialLogin(request: OAuthResponse): TokenResponse {
val loginMember = memberRepository.findByProviderAndProviderId(request.provider, request.providerId)
?: throw IllegalStateException("회원가입이 아직 되지않음") // TODO() 바로 SocailSignUp()으로 넘어가게하기??
return TokenResponse(
accessToken = jwtTokenManager.generateToken(memberId = loginMember.id!!, memberRole = MemberRole.MEMBER),
refreshToken = null
)
}
fun socialSignUp(request: SocialSignUpRequest, oAuthRequest: OAuthResponse): SignUpResponse {
check(!memberRepository.existsByEmail(request.email)) { "존재하는 이메일" }
check(!memberRepository.existsByNickname(request.nickname)) { "이미 존재하는 닉네임" }
val member = SignUpRequest.toEntity(
SignUpRequest(
email = request.email,
code = "소셜 로그인",
password = "${oAuthRequest.provider}+${oAuthRequest.providerId}", //TODO 추후에 고유 값으로 대체가능
confirmPassword = "${oAuthRequest.provider}+${oAuthRequest.providerId}",
nickname = request.nickname,
providerName = oAuthRequest.provider,
providerId = oAuthRequest.providerId,
), passwordEncoder
)
member.profileImageUrl = oAuthRequest.profileImageUrl
memberRepository.addMember(member)
return SignUpResponse.from(member)
}
현재 소셜로그인용 api를 따로 만들것인지, 아니면 기존의 로그인에서 추가로 작성할지에 대해서는 고려중이다.
또한 소셜로그인으로 회원가입시 password를 고유값으로 설정하고
소셜 로그인 진행시 OAuthResponse값을 어떻게 인자로 받아서 값을 설정할지에 대한 부분도 고민을 해봐야겠다.
'TIL' 카테고리의 다른 글
𝓡𝓮𝓯𝓻𝓮𝓼𝓱 𝓣𝓸𝓴𝓮𝓷 (0) | 2024.07.29 |
---|---|
간단한 Debugging 사용법 (0) | 2024.07.28 |
네이버 소셜 로그인 Error while extracting response for type 오류 (0) | 2024.07.26 |
소셜 로그인 오류 해결 (0) | 2024.07.25 |
소셜 로그인 Failed to fetch 오류 (1) | 2024.07.24 |