일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DART
- nodejs
- pug
- 자바스크립트
- ES6
- Session
- GRID
- CLONE
- react
- Mongoose
- form
- javscript
- JavaScript
- heroku
- Component
- 리액트
- express
- clonecoding
- ECMAScript
- node.js
- TypeScript
- MongoDB
- Flutter
- CSS
- graphQL
- HTML
- backend
- NextJs
- API
- frontend
- Today
- Total
Enjoy Programming
Express - passport kakaotalk 본문
하,,,,페이스북은 버렸다.. 다들 욕이 난무한다.. 페이스북은,... ㅋㅋㅋㅋ 노마드코더 2021 업데이트 버전도 페이스북은 빠졌다 ㅋㅋ
그냥 카카오톡 연결하고 넘어가겠다
카카오톡은 살짝 json에서 멍해지긴 했지만 잘 해결했다.
우선 카카오 디벨로퍼 사이트로 가자
다들 카카오톡 아이디는 있을테니~~
들어가게 되면 애플리케이션 하나를 만들어주자
애플리케이션을 만들었으면 내가 등록할 싸이트 도메인을 적어주고
redirect URI도 등록해주자. redirect는 callback 시 이동할 url을 적어주며 된다.
그리고 깃헙에서 사용했었던 것처럼 REST api 키가 필요하다 . secret key는 꼭 사용 할 필요가 없어서 사용하지 않았다
그리고 카카오 로그인을 활성화 해주고 동의항목을 설정해주는데 여기서 애를 좀먹었다.
필자는 프로필정보는 필수동의를 추천한다.. 그리고 이메일을 가져올 것이기 때문에 이메일도 선택동의 해주자
그리고 사용자 프로퍼티 항목을 잘 봐주자!~! 저기에 내가 가져올 정보들이 있다. 저정보들이 json형태로 담겨있다
본격적으로 passportJs에서 passport-kakao를 보자
http://www.passportjs.org/packages/passport-kakao/
npm install kakao~!~!~! 당연히 strategy를 설치를 해주고
먼저 routes를 설정해주자
그리고 app key를 환경변수로 설정해주고 ~~~
passport.js에서 카카오 strategy를 만들어 준다.
콜백 함수는 컨트롤러에서 만들어 주자~
이제 컨트롤러로 이동해서
카카오 로그인 요청시 카카오페이지로 넘겨줄 컨트롤러 하나를 만들어주고
중요한 콜백함수를 만들어 준다. 역시 4개의 매개변수가 있다. done은 내가 잘못 이해햇었는데 역시 passport의 callback함수이다.
그리고 중요한 profile의 정보를 가져오는 것인데~ profile을 찍어보면~!
이렇게 나온다~! 요거 뽑아낼때 고생한게 위에 언급한 동의항목을 설정을 제대로 안하면 저 정보들이 undefined로 많이뜬다...
자 이 보들에서 필요한 정보를 가져와서~!~!
db와 email을 비교해서 있으면 업데이트 없으면 새로 유저를 만들어 준다.
그리고 콜백함수는 역시 에러가 있으면 에러를 보내주고 아니고 제대로 인증되고 유저가 생성이 되면 error는 null
user정보를 보내준다.
그리고 모든 과정이 지나고 제대로 인증이 되고 유저 셋팅이 완료가 되면 로그인 함수를 만들어 로그인 시키고 홈으로 보내준다.
이제 라우터 설정을 해주자.
먼저 카카오 로그인 라우터와 콜백이 실행되고 passport kakao 인증을 하고서 카카오인증정보로 셋팅된 유저로 다시 본 사이트에
로그인 시켜줄 컨트롤러를 실행하는 라우터를 만들었다.
이제 실행해보면~!~! 로그인이 된다!
'JavaScript > Node.JS' 카테고리의 다른 글
Express - (passport-local-mongoose) - Change Password (0) | 2021.05.16 |
---|---|
Express - edit User Profile (0) | 2021.05.15 |
Node.js - 저장된 파일 삭제 (0) | 2021.05.14 |
Express - faebook Log In (0) | 2021.05.13 |
Express - User profile (0) | 2021.05.13 |