Spring boot kim's Shop/소셜로그인

Springboot Jwt+카카오 로그인!(2) with 빌더 패턴(builder)

디비드킴 2021. 8. 1. 17:32

자 이제
회원가입 처리 및 리다이렉트를 해주자!

빌더 패턴을 사용해주자

userDto

userDto.java

롬복을 사용해서
@Builder을 사용해주면
아주 간단하게 만들 수 있다!

jwtService

jwtService.java

기존 인증 확인 시스템에서
수정해준다 oauth로그인은
개발자만 알고 있는 비밀번호이다

오스 로그인인지 확인
상황에 맞게 비밀번호 부여
if(dto.getProvider()!=null){
pwd=oauthPwd;
}else{
pwd=dto.getPwd();
}

kakaoLoginService

kakaoLoginService.java

처음 인지 확인
if(dto==null)
처음이라면 회원가입 진행
dto=userDto.builder().email(email)
아니라면 db에서 정보 추출
dto=userDao.findByEmail(email);
시큐리티 인증 부여
Authentication authentication=jwtService.confrimAuthenticate(dto);
jwtService.setSecuritySession(authentication);
토큰 생성 및 전달
String jwtToken=jwtService.getJwtToken(dto.getId());
jwtDto jwtDto=jwtService.getRefreshToken(dto.getId());
String refreshToken=jwtService.getRefreshToken(jwtDto,dto.getId());

Cookie cookie=new Cookie("refreshToken",refreshToken);
cookie.setHttpOnly(true);
cookie.setPath("/");

response.addCookie(cookie);
response.setHeader("Authorization", "Bearer "+jwtToken);

테스트

첫 로그인

mysql
vscode


다시 로그인

vscode

히히 성공!

이제 리다이렉트 처리를 해주자!