인프런 커뮤니티 질문&답변

yjkwon9073님의 프로필 이미지
yjkwon9073

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

로그인 로그아웃 구현

require('passport') 질문입니다.

작성

·

154

0

auth.js 에서 

const express = require('express');
const bcyrpt = require('bcrypt');
const passport = require('passport');

passport모듈을 불러와서 

router.post('/login', isNotLoggedIn, (req, res, next) => { 
passport.authenticate('local', (authError, user, info) => {
if (authError) {
console.error(authError);
return next(authError);
}

passport.authenticate('local', ...)을 사용하셨는데 passport모듈을 불러와서 사용했기 때문에 여기서 passport는 localsSrategy를 모르지 않나요?

답변 3

2

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

한 번 require한 passport는 캐싱돼서 다른 곳에서 require passport해도 같은 passport가 불러와집니다.

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

local(passport)은 서버 실행할때 바로 실행됩니다. 그게 실행되면서 passport.use(new LocalStrategy...)가 미들웨어처럼 장착되는 것이고요.

익스프레스미들웨어랑 비슷합니다. 서버 시작할때 장착돼서 그 후에는 authenticate('local')하면 passport.use(new LocalStrategy)가 실행되는거죠.

0

캐싱부분 하는 부분이 이해가 잘되는데 흐름을 한번 알려주실 수 있나요 ? 

passport.authenticate('local'

을 실행하면 어떻게 auth.js 파일에서 passport/index.js 에있는 local(passport) 가 실행되는건가요 ?

yjkwon9073님의 프로필 이미지
yjkwon9073

작성한 질문수

질문하기