Node.js 교과서 - 6

김민지·2023년 11월 21일
0

Node.js

목록 보기
7/8

1. 데이터 베이스 세팅하기

시퀄라이즈 ORM을 사용하면 SQL을 자바스크립트로 컨트롤 할 수 있다.

회원정보 테이블 models/user.js 작성


게시글 테이블 models/post.js 작성

해시태그 테이블 models/hashtag.js 작성

index.js 수정

models 폴더 안에 있는 파일들을 자동화 할 수 있다.

데이터베이스 연동을 위한 config.json 수정

데이터베이스의 비밀번호와 데이터베이스 이름을 설정하면 된다.

데이터베이스 생성

  1. 데이터베이스 생성
npx sequelize db:create

  1. 테이블 생성
    app.js에서 데이터베이스를 연결한다
// 데이터베이스 연결
sequelize.sync({ force: false })
  .then(() => {
    console.log('데이터베이스 연결 성공');
  })
  .catch((err) => {
    console.error(err);
  });
  1. 실행
npm start


2. passport 세팅 및 회원가입 만들기

로그인을 위한 것들 설치

npm i passport passport-local passport-kakao bcrypt

app.js에 passport 관련 설정 작성

const passport = require('passport');

const passportConfig = require('./passport');

패스포트 미들웨어는 반드시 Express Session 밑에다 작성한다.

app.use(passport.initialize());
app.use(passport.session());

passport/index.js 패스포트에 관한 설정 작성

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();
};

middlewares/index.js 작성

controllers/auth.js와 page.js 작성

auth.js에는 회원가입, 로그인, 로그아웃에 관한 정보를 작성한다.

passport/localStrategy, kakaoStrategy.js 작성

회원가입과 로그인, 로그아웃 등에 성공하면 아래의 사진처럼 뜨게된다.


3. passport로 이메일 로그인 만들기

passport/localStartegy.js 작성

이메일로 로그인이 가능

controllers/auth.js 작성

routes/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('/'); // 성공 시에는 /로 이동
});

4. 카카오 로그인 하기

passport/kakaoStrategy.js 작성

kakao와 연동하기

https://developers.kakao.com/

  1. 내 애플리케이션 작성해 앱 생성 후 restAPI key를 .env에 작성
  2. 플랫폼 - 프론트 주소 입력 - 리다이렉트 URI 입력 - 카카오 로그인 활성화
  3. 동의 항목 수정 (동의 목적은 유저에게 보여지는 것이므로 정확하게 작성!)
  4. passport/index.js에서 카카오 연결 (호출)

결과 화면

profile
안녕하세요

0개의 댓글