Skip to content

spearmootz/node-laravel-session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

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.

laravelSession.getAppKey('path/to/your/.env')
        .then((appKey) => {
            // continue
        });

Then just find the key by calling the function 'getSessionKey'

let sessionKey = laravelSession.getSessionKey(session, appKey);

Get your complete laravel session. Redis example

laravelSession.getSessionFromMysql(sessionKey, mySqlConnection)
  .then((session) => {
      console.log('here is the full session:' + session);
  });

About

a way to share laravel session with node

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published