2022. 11. 7. 21:45ㆍ공부/Javascript
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (2) (tistory.com)
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (2)
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (1) (tistory.com) [Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (1) 다양한 서비스에서 이미 존재하는 플랫폼의 ID로 로그인하는 기능을 구현
riam.tistory.com
이제 우리가 원하던 유저 객체와 이메일 객체를 받아왔으므로 로그인을 할 차례다.
우리는 앞서 직접 유저 정보를 입력해서 가입하는 방법을 구현했고,
username과 패스워드를 이용해 로그인하며 email을 이용해 각 사용자를 구분했었다.
만약 github에서 로그인 할 때 이미 email이 우리 데이터베이스에 존재하면 어떻게 될까?
1. github 로그인을 취소하고 일반 로그인으로 리다이렉트 시킨다.
2. 둘 다 인증된 이메일이라면 같은 사용자인 것으로 간주하고 로그인 시킨다.
여러가지 방법이 존재하지만 2번의 방법이 아마 사용자 입장에서는 편하게 느껴질 것 같다.
또, github으로 로그인 할 때 유저 데이터베이스에 정보가 없다면 어떻게 될까?
1. 먼저 기존 방식으로 회원가입을 진행시킨 뒤 로그인시킨다.
2. github 로그인 전용 유저 데이터를 만든다.
이 역시 2번 방식이 사용자 친화적이다.
유저 스키마 변경
github 로그인 전용 유저 데이터를 저장하기 위해 USER 스키마를 변경하자
기존에는 password가 required 였지만 github 로그인에서는 패스워드가 필요하지 않으므로 required를 삭제한다.
socialOnly 속성은 해당 객체가 social login 전용 객체라는 것을 의미하며
avatarUrl은 아바타 이미지가 담긴 URL이다.
로그아웃
로그아웃은 간단하게 세션을 제거해주면 된다.
'공부 > Javascript' 카테고리의 다른 글
[Youtube 클론코딩] 비밀번호 변경, bcypt의 원리 (1) | 2022.11.23 |
---|---|
[Youtube 클론코딩] 프로필 수정 기능 (0) | 2022.11.22 |
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (2) (0) | 2022.11.07 |
[Youtube 클론코딩] 소셜 로그인 기능, 로그아웃 구현 (1) (0) | 2022.11.06 |
[Youtube 클론코딩] 세션 설정 마무리하기, 환경 변수 (0) | 2022.11.04 |