시퀄라이즈 ORM을 사용하면 SQL을 자바스크립트로 컨트롤 할 수 있다.
models 폴더 안에 있는 파일들을 자동화 할 수 있다.
데이터베이스의 비밀번호와 데이터베이스 이름을 설정하면 된다.
npx sequelize db:create
// 데이터베이스 연결
sequelize.sync({ force: false })
.then(() => {
console.log('데이터베이스 연결 성공');
})
.catch((err) => {
console.error(err);
});
npm start
npm i passport passport-local passport-kakao bcrypt
const passport = require('passport');
const passportConfig = require('./passport');
패스포트 미들웨어는 반드시 Express Session 밑에다 작성한다.
app.use(passport.initialize());
app.use(passport.session());
const passport = require('passport');
const local = require('./localStrategy');
const kakao = require('./kakaoStrategy');
const User = require('../models/user');
module.exports = () => {
passport.serializeUser((user, done) => {
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findOne({ where: { id } })
.then(user => done(null, user))
.catch(err => done(err));
});
local();
kakao();
};
auth.js에는 회원가입, 로그인, 로그아웃에 관한 정보를 작성한다.
회원가입과 로그인, 로그아웃 등에 성공하면 아래의 사진처럼 뜨게된다.
이메일로 로그인이 가능
// GET /auth/kakao
router.get('/kakao', passport.authenticate('kakao')); // 카카오톡 로그인 화면으로 redirect
// GET /auth/kakao/callback
router.get('/kakao/callback', passport.authenticate('kakao', {
failureRedirect: '/?error=카카오로그인 실패',
}), (req, res) => {
res.redirect('/'); // 성공 시에는 /로 이동
});