node-laravel-session
Version:
Tool in order to share sessions between node and laravel
56 lines (37 loc) • 2.04 kB
Markdown
# node-laravel-session
a way to share laravel session with node. please feel free to make PR's with additional functionality such as getting decoded sessions from other session drivers
# What it does
This is a simple utility which helps you obtain the laravel session key. You pass in your laravel key, as well as your laravel_session found in your cookie and we return a key that helps you find the session details.
# API
```
getAppKey(pathToEnvFile): resolves APP_KEY found in .env without 'base64:'
getSessionKey(laravel_session, laravelAppKey, [optional keyLength]): returns laravel session key such as 'ffdbeaac243c2d691d64084710d428d575c07007'
getSessionFromRedis(laravelSessionKey, redisConnection, [optional sessionPrefix='laravel_cache']): returns a promise that resolves with the session object. On laravel 5.4 or less, the sessionPrefix should be 'laravel'
getSessionFromMysql(laravelSessionKey, mySqlConnection [, databaseTable]): returns a promise that resolves with the session object
getSessionFromFile(laravelSessionKey, sessionFilePath): returns a promise that resolves with session object
```
# Usage
`let laravelSession = require('node-laravel-session');`
Get your laravel_session from the cookie. for example:
``` js
let cookie = require('cookie');
let session = cookie.parse(req.headers.cookie).laravel_session;
```
Get your app key, for example "MES4V4nAY+eLns059EwEXaXbCB2YKLHCP6bA7tc54KI=" by pasting it or by parsing the laravel .env file with a regex to obtain it. DO NOT INCLUDE "Base64:". or use the provided function function.
``` js
laravelSession.getAppKey('path/to/your/.env')
.then((appKey) => {
// continue
});
```
Then just find the key by calling the function 'getSessionKey'
``` js
let sessionKey = laravelSession.getSessionKey(session, appKey);
```
Get your complete laravel session. Redis example
``` js
laravelSession.getSessionFromMysql(sessionKey, mySqlConnection)
.then((session) => {
console.log('here is the full session:' + session);
});
```