Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@envoy/express-envoy-auth

Package Overview
Dependencies
Maintainers
6
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@envoy/express-envoy-auth

Middleware to authenticate an Express application with Envoy

latest
Source
npmnpm
Version
1.0.4
Version published
Weekly downloads
0
-100%
Maintainers
6
Weekly downloads
 
Created
Source

@envoy/express-envoy-auth

Middleware to authenticate a Express application with Envoy.

Installation

$ npm install @envoy/express-envoy-auth

Usage

import envoyAuth from "@envoy/express-envoy-auth";

envoyAuth

Returns an authentication middleware taking up (by default) the routes /auth and /auth/callback.

app.use(
  envoyAuth({
    // optional. if specified, constructs OAuth and GraphQL URLs
    // against this base host. Defaults to envoy.com
    host: "envoy.dev",
    // optional. if specified, mounts the routes off of the given path
    // eg. /envoy/auth, /envoy/auth/callback
    // defaults to ''
    prefix: "/envoy",
    // required. your envoy client ID
    clientID: ENVOY_CLIENT_ID,
    // required. your envoy client secret
    secret: ENVOY_SECRET,
    // required. scopes to request on the user
    scopes: ["public"],
    // optional. if specified, redirects to this URL after OAuth 2.0 authorize.
    // Defaults to to <host>/auth/callback
    callback: "https://www.example.com/envoy/auth/callback",
    // optional. if specified, `afterAuth` is called when auth is
    // completed. middleware will redirect to "/" by
    // default
    afterAuth(req, res) {
      const { accessToken } = req.session;
      console.log("We did it!", accessToken);
      res.redirect("/");
    },
  })
);

/auth

This route starts the oauth process.

/auth/callback

You should never have to manually go here. This route is purely for Envoy to send data back during the oauth process.

Example app

import express from "express";
import session from "express-session";
import envoyAuth from "@envoy/express-envoy-auth";

const { ENVOY_CLIENT_ID, ENVOY_SECRET } = process.env;

const app = express();

app.use(
  session({
    secret: ENVOY_SECRET,
    saveUninitialized: true,
    resave: true,
  })
);

// everything after this point will require authentication
app.use(
  envoyAuth({
    clientID: ENVOY_CLIENT_ID,
    secret: ENVOY_SECRET,
    scopes: ["public"],
    callback: "https://plugin-home.ngrok.io/auth/callback",
    afterAuth(req, res) {
      const {
        session: { accessToken },
        user,
      } = req;
      console.log("Logged in", { accessToken, user });
      res.redirect("/");
    },
  })
);

// application code
app.use((req, res) => {
  res.send("🎉");
});

FAQs

Package last updated on 01 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts