궤도
간편 로그인은...뭘까...(혼잣말) 본문
언젠가 자세하게 연구할 예정
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api
처음 봤을 때는 외계어였는데 jwt를 어느정도 간잽하고 나니 아주 외계어는 아니다...그냥 영어 정도
대충 카카오로 이해해보자면
로그인 요청 -> code 반환 -> code와 함께 요청 -> 토큰 반환 -> 토큰과 함께 요청 -> 유저 데이터 반환
인 것 같다.
그니까 사용자가 카카오로 로그인을 시도하면 대충 2단계를 거쳐 유저 데이터에 접근할 수 있는 것 같은데, 유저 데이터의 이메일로 DB랑 중복체크를 하고...중복이 아니라면 회원가입을 하는건데...여기서 잠깐 혼란스러웠던 부분은
나도 자체 회원가입 서비스에 Token을 제공하는데...카카오에서 제공하는 Token이랑 다르니까 모든 데이터 접근마다 자체 토큰과 카카오 토큰을 비교하며 해야하나..?
당연히 그럴리 없다. 세상에 소셜로그인이 얼마나 많은데
그래서 내가 생각한 것은...어차피 토큰이 있고 로그인이 유지되는 동안엔 로그인은 한 번만 이뤄진다는 것이고
대충 최초 로그인으로 유저 데이터 반환받은 뒤 없는 유저라면 카카오로부터 받아온 이메일과 닉네임으로 회원가입 dto를 만드는 것이다.
그니까 카카오에서 제공하는 Token은 내가 정보 접근할 때만 서버에서 쓰고 내가 짠 코드에 기반한 Token을 프론트에 발행하겠다는 것이다. 아 근데 그럼 비밀번호 부분을 nullable로 수정해야겠다.
그럼 뭐 서비스 접근할 때도 내가 발행한 토큰을 들고 올테니 아무 문제 없다.
속된 말로 그냥 유저 정보만 뽑아내고 버리는 용도인 것이다.
처음 이 생각이 들었을 땐 이렇게 유저정보만 취하고 팽하는게 맞나? 싶었는데 맞을 것 같다.
왜냐면 정말 회원가입때 빼곤 소셜에서 제공하는 정보가 필요하지 않으니까 ㅇㅇ
내 생각이 틀렸을 수 있음 왜냐면 난 무지랭이라...