-
[ Node js ] Passport 미들웨어 (1) - 패스포트 무엇인가?nodejs/nestjs 2020. 12. 6. 05:15
Passport
- 애플리케이션(인터넷포털사이트,앱)들은 대부분 '회원'이 있습니다. 회원이 있다는 것은 회원가입을 통하여 신규 가입을 시켰을 겁니다.
신규 가입을 하고 로그인을 하게 되면 '로그인' 버튼이 사라지고 '로그아웃'버튼이 생기기도 하며 '내 정보'를 확인할 수 있고
로그인을 해야만 들어갈 수 있는 페이지를 접속할 수 있습니다.
일반적으로 쿠키와 세션을 통하여 로그인이 되어있는지 안되어있는지에 따라 페이지의 접근 여부 및 버튼들이 달라집니다.(로그인 인증)
직접 회원정보 DB와 비즈니스 로직을 짜서 로그인 기능을 구현하는 것은 비교적 쉬울 수 있지만
세션, 쿠키 처리 등 인증에 대한 부분은 다소 복잡할 수 있습니다.여러 복잡한 인증절차들을 패스포트를 이용하여 인증 절차를 쉽게 만들 수있는 미들웨어입니다.
( 인증에 대한 성공 및 실패에 대한 비즈니스 로직은 직접 개발해야 합니다. )- 참고 : www.npmjs.com/package/passport / www.passportjs.org/docs/
Passport의 주요 용법
Strategies ( Strategy )
- 패스포트는 Strategy를 사용하여 사용자 요청에 대한 인증을 처리합니다.
대표적으로 localLocalStrategy, Oauth , OpenID가 있습니다.localLocalStrategy : 직접 유저에게 신규 가입(아이디/패스워드)를 통하여 인증
Oauth : 외부 서비스를 통하여 access Token을 발급받음
OpenId : 외부 서비스를 통하여 ID Token을 발급받음 ( Oauth 2.0을 이용하여 만들어진 기술 )
* 참고'외부 서비스'란 '카카오톡, 페이스북 등을 이용한 로그인' 등과 같은 제3자 로그인을 의미합니다.
Sessions ( serializeUser / deserializeUser )
- 사용자가 로그인을 하게 되면 로그인했으니 '로그아웃'버튼이 생기던가 로그인을 해야만 접근 가능한 페이지로 들어갈 수 있게끔 해주어야합니다. 클라이언트가 로그인 요청을 하면, 서버는 '세션'을 생성하여 브라우저에게 세션을 제공하면 위의 같은 문제들을 해결합니다.
- Passport는 serializeUser를 이용하여 세션에 데이터를 저장하고
deserializeUser를 이용하여 세션에 저장된 데이터를 가져옵니다.
다음 장에서는 패스포트를 이용하여 직접 로그인 인증을 구현해보겠습니다.
감사합니다.
" 행복한 삶을 살고 싶다면
사람이나 사물이 아닌 목표에 의지하라. "
알버트 아인슈타인
'nodejs > nestjs' 카테고리의 다른 글
[nestjs] 마이크로서비스 환경에서 로그 추적을 위한 traceId 세팅 - kafka (5/5) (0) 2024.05.18 [nestjs] 마이크로서비스 환경에서 로그 추적을 위한 traceId 세팅 - kafka (4/5) (0) 2023.07.26 [nestjs] kafka 커넥션 핸들링 및 topicMessage prefix 구현 - kafka (2,3/5) (0) 2023.07.25 [nestjs] kafka 마이크로서비스 구축하기 - kafka (1/5) (0) 2023.07.24