A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.npmjs.com/package/connect-session-firebase below:

connect-session-firebase - npm

Connect Session Firebase

connect-session-firebase 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. connect-session-firebase expects a only matching major version of Firebase, i.e. any connect-session-firebase@11.x.x version will expect any firebase-admin@11.x.x version peer dependency.

$ npm install firebase-admin connect-session-firebase --save
Options Usage

Initialize firebase-admin database and pass the instance to FirebaseStore. Connecting to the database requires a credential cert via a JSON file from the Firebase IAM & Admin Console.

const connect = require('connect')
const FirebaseStore = require('connect-session-firebase')(connect)
const firebase = require('firebase-admin')
const ref = firebase.initializeApp({
  credential: firebase.credential.cert('path/to/serviceAccountCredentials.json'),
  databaseURL: 'https://databaseName.firebaseio.com',
})

connect()
  .use(connect.cookieParser())
  .use(
    connect.session({
      store: new FirebaseStore({
        database: ref.database(),
      }),
      secret: 'keyboard cat',
    }),
  )
const express = require('express');
const session = require('express-session');
const FirebaseStore = require('connect-session-firebase')(session);
const firebase = require('firebase-admin');
const ref = firebase.initializeApp({
  credential: firebase.credential.cert('path/to/serviceAccountCredentials.json'),
  databaseURL: 'https://databaseName.firebaseio.com'
});

express()
  .use(session({
    store: new FirebaseStore({
      database: ref.database()
    }),
    secret: 'keyboard cat'
    resave: true,
    saveUninitialized: true
  }));
Security

If you use a publicly available Firebase Database, please set proper rules:

{
  "rules": {
    ".read": "false",
    ".write": "false",
    "sessions": {
      ".read": "false",
      ".write": "false"
    },
    "some_public_data": {
      ".read": "true",
      ".write": "auth !== null"
    }
  }
}

Learn more about Firebase rules: https://firebase.google.com/docs/database/security/

Tests

To run tests against connect-session-firebase you will need your own Firebase Database app available.

Checkout the repo locally and create two files in the project root:

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-firebase is licensed under the MIT license.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4