프로그래밍 공부방

[node.js] 세션 생성 및 저장(mysql) 본문

백엔드/Node.js

[node.js] 세션 생성 및 저장(mysql)

김갱갱 2022. 7. 20. 00:42

로그인 기능을 구현하기 위해서 먼저 세션을 공부해보겠습니다!

먼저 아래와 같이 입력해서 설치해주세요.

npm install -s express-session
npm install express-mysql-session

MYSQL 세션 저장

저는 mysql에 세션을 저장하는 방식을 이용했습니다.

그렇기 때문에 mysql도 미리 설치를 해주고 시작해주세요.

options에는 본인 데이터베이스의 포트번호와 패스워드 등을 입력해주세요.

const session = require("express-session"); 
const MySQLStore = require('express-mysql-session')(session); 

var options = {
  host: "localhost",
  port: 포트번호,
  user: "root",
  password: "패스워드 입력",
  database: "session",
};

var sessionStore = new MySQLStore(options);

app.use(
  session({
    key: "session_cookie_name",
    secret: "session_cookie_secret", 
    store: sessionStore,
    resave: false, 
    saveUninitialized: false,
  })
);

app.get('/', function(req, res){
    fs.readFile('./views/index.ejs', "utf-8", function(error, data){
      res.writeHead(200, {'Content-Type': 'text/html' });
      res.end(ejs.render(data));
    })
    req.session.test = 'session_ok'; //세션 생성
})

app.use(session()); 은 세션 미들웨어입니다. 이 코드도 추가해주세요.

 

저는 아직 로그인 구현이 아니라 세션 공부 단계이기 때문에 메인화면 들어가자마자 세션이 생기도록 해놓았습니다.

req.session.test = 'session_ok'를 해주면 아래 사진처럼 값이 추가가 된 것을 확인할 수 있습니다. (임의로 설정)

 

MYSQL 접속해서 확인 하는 과정
세션이 잘 저장된 모습
클라이언트 쿠키