평범하게 사이트 내에서 가입한 아이디이다.
구글 연동 / 네이버 연동 / 카카오 연동 여부가 0으로 표시되고 있는데,
이는 해당 외부API와 연동되지 않았다는 뜻이다.
해당 아이디로 네이버 로그인을 해보겠다.
사실 엄청난 처리를 한 것이 아니라서 코드 상 작업도 별로 없었다.
그러니 기존의 카카오 로그인 코드에서 변경된 부분만 올린다.
//아이디
String jsonString2 = objectMapper.writeValueAsString(map.get("kakao_account"));
JsonNode jsonNode2 = objectMapper.readTree(jsonString2);
String id = jsonNode2.get("email").asText();
//이미 가입한 사람인지 확인
MemberDTO check = serv.selectOneAPIMember(id);
//기가입자이지만, 카카오 연동이 안된 사람을 연동
if(check != null && check.getKakaoConnected() == 0) {
serv.updateAPIMemberKakaoConnected(check.getUserId());
}
ModelAndView mav = new ModelAndView();
//미가입자일 경우, 자동 가입
if(check == null) {
//비밀번호
String pw = sc.encrypt("Kakao"+dbc.getNum(16));
//닉네임
String nickname = oac.randomNickname();
MemberDTO dto = new MemberDTO();
dto.setUserId(id);
dto.setUserPw(pw);
dto.setNickname(nickname);
dto.setKakaoConnected(1);
//회원가입
serv.insertAPIMember(dto);
//닉네임 변경하는 화면으로 이동
MemberDTO nDTO = serv.selectOneAPIMember(dto.getUserId());
session.setAttribute("loginUser", nDTO);
mav.addObject("dto", nDTO);
mav.setViewName("member/Login/APILogin");
return mav;
//가입자일 경우, 메인으로 이동
} else {
session.setAttribute("loginUser", check);
mav.setViewName("redirect:/");
return mav;
}
}
솔직히 SSO 토큰으로 처리해야 하는 작업인데 지금 어제 오늘 하루종일 작업해서 정신이 없다...
완전히 새로운 내용을 공부해서 작업해야 하는 것이기도 하고...
자소서니 기술면접이니 준비할 것도 많다보니까 일단 이정도만 정리
아마 다음 작업은 일단은 가벼운 작업 여러 개가 될 것 같다.
1. 아이디/비밀번호 찾기, 회원가입 1단계 기회원 여부 판별에서
구글/네이버/카카오 로그인 가입자면 그쪽으로 안내하기
2. 비밀번호 찾기도 동일
3. 현재 구글로그인 등 보안코드들은 github에 올라가지 못함
-> Application.properties가 아닌 다른 properties에 넣고,
gitIgnore를 통해 github 사용에 지장가지 않도록 만들기
그 뒤로는 이하와 같은 작업을 예정하고 있다
1. SSO
2. JWT 토큰을 통한 로그인 / 동일 계정 확인
3. 스프링 시큐리티 3.0 암호화
'팀프로젝트 > SpringBoot' 카테고리의 다른 글
스프링부트 팀플) 20240403 properties분리 / 회원가입 로딩창 구현 (0) | 2024.04.03 |
---|---|
스프링부트 팀플) 20240401 외부API가입자 안내 / 비밀번호 바꾸기 메일 (0) | 2024.04.02 |
스프링부트 팀플) 20240331 아이디의 이메일화 (0) | 2024.03.31 |
스프링부트 팀플) 20240330 개인정보 제거 (0) | 2024.03.31 |
스프링부트 팀플) 20240329 네이버 로그인 (0) | 2024.03.30 |