JSPM

express-user-impersonation

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 37
  • Score
    100M100P100Q54576F
  • License MIT

A simple library to be used for impersonating accounts in an Express app.

Package Exports

  • express-user-impersonation

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (express-user-impersonation) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Express User Impersonation

A simple library to be used for impersonating accounts in an Express app.

This library is used with PassportJS authentication library.

Installation

npm install --save express-user-impersonation

Operations

Impersonate

To impersonate a user, call on the Impersonate middleware. Note that this function will use the currently logged user from Passport and temporarily save that user as a session of this library so as to override the currently logged in user.

Return

To return from an impersonate state, simply call on the Return middleware. This will delete the temporary user from the Passport session and override it with the saved user.

Usage

var express = require('express'),
    impersonation = require('express-user-impersonation'),
    userImpersonation = new impersonation("auth session variable"),
    cookieSession = require('cookie-session'),
    app = express(),
    passport = require('passport');

app.use(cookieSession({
    maxAge: 24 * 60 * 60 * 1000,
    keys: ["keyboard cat"]
}));

// Assuming that Passport is setup to handle authentication

app.get('/impersonate/:id', userImpersonation.Impersonate, function (req, res) {
    // your own code here
});

app.get('/return', userImpersonation.Return, function (req, res) {
    // your own code here
});

app.listen(process.env.PORT || 3000);