• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

19.08.27 11:34 작성 조회수 102

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

김학준님의 프로필

김학준

2020.07.04

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

passport.authenticate('local'

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