@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({
host: "envoy.dev",
prefix: "/envoy",
clientID: ENVOY_CLIENT_ID,
secret: ENVOY_SECRET,
scopes: ["public"],
callback: "https://www.example.com/envoy/auth/callback",
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,
})
);
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("/");
},
})
);
app.use((req, res) => {
res.send("🎉");
});