19.12.05.목 - TIL

NO PAIN, NO GAIN·2019년 12월 5일
0

Today I Learn

목록 보기
2/36
  • passport-jwt의 사용방법을 익혔다. 처음에 강의를 보고만 해서 동작방법을 제대로 익히지 못했었다. 다시 보면서 코드 하나의 의미가 무엇인지 파악하면서 알아냈다.
// server.js
//...
import authenticateJwt from "./passport";
express.use(authenticateJwt);
// passport.js
import { Strategy, ExtractJwt } from "passport-jwt";
const jwtOptions = {
	jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
  	secretOrKey: "무작위글자를넣는게좋아요" // 보안을 위해 .env파일에 넣어서 불러오는게 좋다.
}
const verify = (payload, done) => {
  try {
  	if (user
    	return done(null, user);
    }
    return done(null, false);
  } catch (error) {
    return done(error, false);
  }
}
export default authenticateJwt = (req, res, next) =>
	passport.authenticate("jwt", { session: false }, (error, user) => {
  		if (user) {
        	req.user = user;
        }
  		next();
	})(req, res, next);
passport.use(new Strategy(jwtOptions, verify));
passport.initialize();
  • authenticateJwt가 실행이 되면 passport가 'jwt' 전략 사용한다.
  • passport는 'jwt' 전략에서 jwtOptions로 token에 있는 정보를 추출한다.
  • 추출한 정보가 verify 함수의 매개변수로 들어간다.
  • verify 함수는 payload에 정보가 있으면 매개변수로 done 을 실행하는데 이 done은
    passport.authenticate의 세번째 인자다.
profile
갈고 닦자.

0개의 댓글