프로그래밍/Nodejs

passport를 통한 인증

부천토박이 2017. 4. 28. 08:05

1. 인증

인증 작성하기

: 서비스내 직접 인증 기능 작성(Local Auth)

: 3자 인증 기능 사용(OAuth)

: OpenID - 인증만 제공해주는 서비스

로컬 인증

: 서비스 자체에서 사용자 가입

: 사용자 로그인 기능

: 사용자 정보 관리

: 필요한 점

: ID/PW가 서버와 클라이언트 메시지에 담겨서 이동

: 서버에 ID/PW 저장

: 사용자 정보 암호화

: 보안 통신 필요 : HTTPS

3자 인증

: 다른 서비스에 등록된 사용자의 인증 정보 사용

: 직접 가입/로그인 절차 없음

: ID/PW 노출 위험 적다

: 다른 서비스에서 토큰 발급

: 새로운 서비스

: 새로운 사용자라면, 인증하라고 요청

: 서비스키 제공- client_id, secret

: 가입된 서비스에 3자 인증 요청

: 가입된 서비스에 인증

: 인증 정보를 새로운 서비스에 전달

: 가입된 서비스에 인증 상황 문의

: 인증된 사용자 인지 문의

: 서비스 사용 가능

2. Passport

인증 모듈

: passport, everyauth

Passport 다루기 절차

1 : 모듈 로딩과 초기화

> var passport = require('passport');

> app.use(passport.initialize());

2 : Strategy 설정

> var Strategy = require('passport-strategy').Strategy;

> passport.use(new Strategy(function username, password, done){})

: 다양한 Strategy 제공

: Local Auth

: facebook, wirtter, google, kakao talk

3 : 인증

> app.port('login',passport,authenticate('local'))

: 인증 성공시

: 성공 메세지와 코드

: 성공 페이지 이동(웹)

: 인증 실패시

: 실패 메시지와 코드, 로그인페이지(웹)

4 : 세션 기록과 읽기

> passport.serializeUser(function(user, done){})

> passport.deserializeUser(function(id,done))

: 요청마다 세션 기록과 읽기

: passport.authenticate 이후 세션기록(serializeUser)

: 일반 요청마다 세션에서 읽기 (deserializeUser)

: 세션에서 읽어온 데이터

> req.user

5 : 사용자 정보

> req.user

3. LocalAuth

로컬 인증용 Strategy

설치

: npm install passport-strategy