New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mysql-sessions

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mysql-sessions

Sessions for MySQL

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

nodejs-mysql-sessions

Создание и использование сессий с хранилищем в MySQL.

Автоматически создает таблицу sessions в заданной базе данных MySQL.
Автоматически создает/обновляет сессии для каждого подключения.
Автоматически сохраняет зашифрованное название сессии в куки.
Автоматически удаляет просроченные сессии исходя из допустимого срока бездействия.
Использует агента (данные браузера) и опцонально IP-адрес для распознания подмены.
Формирует функционал для сохранения в сессии, извлечения и удаления из сессии данных пользователя.
Метод "start" помещает функционал и пользовательские данные в req.sessions

req.sessions.row 	- копия строки сессии
req.sessions.parse	- объект с пользовательскими данными
req.sessions.set	- функция установки пользовательских данных
req.sessions.delete	- функция удаления пользовательских данных
req.sessions.pop	- функция извлечения и удаления одиночных пользовательских данных (флэш-данных)

Использует 
- модуль "encode-decode-cookies" для простого шифрования кукисов и взаимодействия с ними.
- модуль "model-for-mysql" для взаимодействия с БД MySQL

Подключение

//Модуль кукисов
var cookies = require('encode-decode-cookies')({
	password 	: 'password',	//Пароль шифрования кукисов ('' - без шифрования)
});
//Модуль сессий
var sessions = require('mysql-sessions')({
	//Конфигурация базы данных 
	db	: {
		host 		: 'localhost',
		user 		: 'user',	
		password 	: 'password',
		database 	: 'database',	
	},
	//Конфигурация сессий
	label	: 'SN',		//Название метки в кукисах
	timeout : 15*60,	//Время жизни сессии при бездействии, секунд
	checkIP	: false,	//Проверять изменение IP					
});

//Формируем задачу
var app = function(req, res) {
	
	//Подключаем и запускаем модуль кукисов
	cookies.start(req, res);
	console.log(req.cookies);
	
	//Подключаем и запускаем модуль сессий
	sessions.start(req, res, function () {
		console.log(req.sessions);
		...
	});	
};
//Создаем и запускаем сервер для задачи
var server = require('http').createServer(app);
server.listen(2020);

Использование

Установка данных (до установки заголовков res.writeHead)

var data = {
	name1 : value1,
	name2 : value2,
	...
};
req.sessions.set(data, function(success){});

Удаление данных (до установки заголовков res.writeHead)

req.sessions.delete( name, function(success){} );

или

req.sessions.delete( [name1, name2], function(success){} );

Извлечение и удаление удиночных данных (флэш-данных) (до установки заголовков res.writeHead)

req.sessions.pop( name, function(success, value){} );

Получение копии строки сессии

var my_session_row = req.sessions.row;

Получение всех пользовательских данных

var my_session_data = req.sessions.parse;

Получение отдельных пользовательских данных

var user_id = req.sessions.parse['user_id'];

Тестирование

Пример серверного кода для проверки работоспособности расположен в директории "_demo"
Для запуска установите конфигурацию
- модуля cookies (пароль шифрования)
- модуля sessions (параметры соединения с БД, метку куки, время допустимого бездействия и флаг проверки IP алреса).

Запуск тестового сервера (из папки "mysql-sessions")

npm run demo

Результат

http://localhost:2020

Keywords

FAQs

Package last updated on 11 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc