본문 바로가기

Programing/node js

node js mysql session 사용법

 

 

- session

 

세션이란 일정 시간동안 사용자(브라우저)로부터 들어오는 값의 상태를 유지시키는 것,

로그인 시 접속 유지를 시키기 위해 세션을 사용

 

특징

  • 웹 서버에 상태를 유지하기 위한 정보를 저장
  • 각 클라이언트 고유 Session ID를 부여한다. Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스 제공
  • Object 형식으로 저장
  • 쿠키보다 보안이 좋다
  • 서버가 허용하는 한 용량제한이 없다.

 

npm install express-mysql-session --save

 

app.js

var mysql_info = require('./config/db_info');
var sessionStore = require("express-mysql-session");

app.use(session({

	store : new sessionStore({
		host : mysql_info.host,
		port : mysql_info.port,
		user : mysql_info.user,
		password : mysql_info.password,
		database : mysql_info.database,

		clearExpired : mysql_info.clearExpired,
		checkExpirationInterval : mysql_info.checkExpirationInterval,
		expiration : mysql_info.expiration, 
	}),

	secret : mysql_info.secret,
	resave: mysql_info.resave,
	saveUninitialized: mysql_info.saveUninitialized,
	cookie : {
		maxAge : mysql_info.cookieMaxAge 
	},

}));

 

db_info.js

const minutes = 1000 * 60;
const hours = 1000 * 60 * 60;

joo : {

        host				: "", 
        port				: 3306, 
        user				: "", 
        password			: "", 
        database			: "my_db", 
        connectionLimit		: 5000, 
        waitForConnection	: true,
        multipleStatements	: true,
        secret              : "sessionKey",
        resave              : false,
        saveUninitialized   : false,
        cookieMaxAge        : hours,

        clearExpired 		: true, // 만료 된 세션을 자동으로 확인하고 지울지 여부
        checkExpirationInterval : minutes, // 만료 된 세션이 삭제되는 빈도(밀리 초)
        expiration 			: hours, // 유효한 세션의 최대 수명(밀리 초)
    },

 

 

세션이 DB들어오는 정보

 

세션 삭제(logout)

 

router.get('/logout', function(req, res, next) {
  req.session.destroy(function(err) {
    res.redirect("/");
  });
});

 

추가로 스키마 추가하는법

store 안에 넣어주면된다

schema : {
			tableName : 'session',
			columnNames : {
				session_id : 'session_id',
				expires : 'expires',
				data : 'data'
			}
		}

'Programing > node js' 카테고리의 다른 글

node js ejs  (0) 2021.03.02
node js pm2  (0) 2021.02.23
node js async 모듈  (0) 2021.02.17
node js panolens.js 360이미지  (0) 2021.01.14
node js 네이버 계정으로 로그인 (passport-naver)  (0) 2021.01.12