This is a simple guide to demonstrate backend Auth0 integration. There will be no frontend involved. User sign-up, log-in, log-out, all operations will be done through backend only.
// index.js require('dotenv').config(); const { auth, requiresAuth } = require("express-openid-connect"); const app = require("express")(); const config = { authRequired: false, auth0Logout: true, secret: process.env.CLIENT_SECRET, baseURL: "http://localhost:3000", clientID: process.env.CLIENT_ID, issuerBaseURL:`https://${process.env.AUTH0_TENANT}.auth0.com`, }; // auth router attaches /login, /logout, and /callback routes to the baseURL app.use(auth(config)); // req.isAuthenticated is provided from the auth router app.get("/", (req, res) => { res.send(req.oidc.isAuthenticated() ? "Logged in" : "Logged out"); }); app.get("/profile", requiresAuth(), (req, res) => { res.send(JSON.stringify(req.oidc.user)); }); app.listen(3000);
Environment Variables
To run this project, you will need to add the following environment variables to your .env file
CLIENT_ID -> Go to Auth0 -> Applications -> Settings -> Client ID
AUTH0_TENANT -> Go to Auth0 -> Applications -> Settings -> Domain
CLIENT_SECRET -> Run this command to generate the secret value:
openssl rand -hex 32
If you are running on Windows: Try to run this in Git Bash it should work without you needing to install Win64 OpenSSL
Also make sure to setup this in Settings tab in Auth0:
Allowed Callback URLs: http://localhost:3000
Allowed Logout URLs: http://localhost:3000
References
https://github.com/FranklinThaker/auth0-integration-nodejs
https://auth0.github.io/express-openid-connect/index.html
Top comments (0)