TIL/구글링 내용 저장소

[Node] Passport 모듈

JoJobum 2022. 7. 7.

Passport 란?

Passport 모듈은 Node js의 미들웨어로 사용자 인증을 구현해준다

클라이언트가 서버에 요청할 자격이 있는지 인증할 때 사용 

Ex) 소셜 로그인(Naver, Kakao 로그인 등)할 때 passport 모듈 사용

 

Passport.js (passportjs.org)

 

Passport.js

Simple, unobtrusive authentication for Node.js

www.passportjs.org

 

passport에는 Strategy를 제공하고 있어 이를 그대로 가져다 사용하여 기본적인 로그인 부터 여러 사이트의 소셜 로그인 서비스를 비슷하게 구현할 수 있음

 

Strategy의 종류 

- Local Strategy(passport-local) : 로컬 DB에서 로그인 인증 방식

- Social Authentication(passport-kakao 등등) : 소셜 네트워크 로그인 인증 방식

 

인증과정

 

기본적인 id, pw 를 이용한 로그인(local Strategy)의 인증 과정

 

  1. 통신하게 되면 클라이언트에는 쿠키, 서버는 클라이언트에 대응하는 세션 저장소를 생성
  2. 클라이언트가 인증을 담당하는 API로 로그인 요청
  3. 서버는 DB 조회해서 ip, pw 일치 여부 확인 (Strategy 클래스)
  4. ip, pw 유효하면 세션 저장소에 해당 유저의 id 저장 (serializeUser() 함수)
  5. 세션 저장소에 사용자 id가 있다면 DB를 조회하여 req.user에 정보를 삽입 (deserializeUser() 함수)

로그인 요청을 처리할 때 passport.authenticate() 함수를 사용하여 2~5 번 실행됨

 

 

반응형

'TIL > 구글링 내용 저장소' 카테고리의 다른 글

[JavaScript] var, let, const  (0) 2022.07.14
[표기법] Snake Case, Pascal Case, Camel Case, Kebab Case  (0) 2022.07.11
OAuth란?  (0) 2022.07.07
[Mac] AWS EC2 인스턴스 접속  (0) 2022.07.06
[PostgrsSQL] 명령어  (0) 2022.07.05

댓글