Connect Session Firestore
connect-session-firestore
is a Connect/Express compatible session store backed by the Firebase SDK.
Installation
firebase-admin
must be added as a peer dependency, or you're gonna have a bad time.
$ npm install firebase-admin connect-session-firestore --save
Options
database
A pre-initialized Firebase Cloud Firestore app.sessions
(optional) A document reference string for session storage. (defaults to "sessions")reapInterval
(optional) How often expired sessions should be cleaned up (defaults to 21600000) (6 hours in milliseconds)reapCallback
(optional) A callback function to execute whenever a session clean up occurs
Usage
Initialize firebase-admin
database and pass the instance to FirestoreStore
. Connecting to the database requires a credential cert via a JSON file from the Firebase IAM & Admin Console.
const connect = ;const FirestoreStore = connect;const firebase = ;const ref = firebase; ;
-
NOTE: In Express 4
express-session
must be passed to the functionconnect-session-firestore
exports in order to extendexpress-session.Store
:
const express = ;const session = ;const FirestoreStore = session;const firebase = ;const ref = firebase; ;
Tests
To run tests against connect-session-firestore
you will need your own Firebase Database app available.
Checkout the repo locally and create two files in the project root:
- .env
- serviceAccountCredentials.json
With the content:
.env
FIREBASE_SERVICE_ACCOUNT=./serviceAccountCredentials.json
FIREBASE_DATABASE_URL=https://[databaseName].firebaseio.com
serviceAccountCredentials.json
{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "",
"client_email": "",
"client_id": "",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": ""
}
Install the dev dependencies:
$ npm install
Run the tests:
$ npm test
License
connect-session-firestore
is licensed under the MIT license.