로그인 정보 커스텀
const express = require("express");
const { User } = require("../models");
const bcrypt = require('bcrypt');
const passport = require("passport");
const router = express.Router();
router.post('/login',(req,res,next)=>{
passport.authenticate('local',(err,user,info)=>{ //done으로 보낸것
//에러가 있어서 보내졌다면
if(err){
console.error(err)
return next(err);
}
//local.js에서 이메일이나비번이 없어 reason을 적어줬다면,
if(info){
return res.status(401).send(info.reason)
}
//둘다 없다면 (성공) 'user'는 local에서 받은 user
return req.login(user, async(loginErr)=>{
//먼저 에러처리
if(loginErr){
console.error(loginErr);
return next(loginErr);
}
return res.status(200).json(user)//user를 json으로 보내준다.
})
})(req,res,next) //미들웨어 확장법
})Last updated