Gathering detailed insights and metrics for express-openid-connect
Gathering detailed insights and metrics for express-openid-connect
Gathering detailed insights and metrics for express-openid-connect
Gathering detailed insights and metrics for express-openid-connect
An Express.js middleware to protect OpenID Connect web applications.
npm install express-openid-connect
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
475 Stars
508 Commits
142 Forks
20 Watching
18 Branches
54 Contributors
Updated on 18 Nov 2024
JavaScript (99.87%)
TypeScript (0.13%)
Cumulative downloads
Total Downloads
Last day
-11.9%
10,106
Compared to previous day
Last week
-3.8%
63,482
Compared to previous week
Last month
2.9%
269,863
Compared to previous month
Last year
44.2%
2,991,288
Compared to previous year
1
📚 Documentation - 🚀 Getting Started - 💻 API Reference - 💬 Feedback
This library supports the following tooling versions:
^10.19.0 || >=12.0.0
Using npm in your project directory, run the following command:
1npm install express-openid-connect
Follow our Secure Local Development guide to ensure that applications using this library are running over secure channels (HTTPS URLs). Applications using this library without HTTPS may experience "invalid state" errors.
Create a Regular Web Application in the Auth0 Dashboard.
If you're using an existing application, verify that you have configured the following settings in your Regular Web Application:
- Click on the "Settings" tab of your application's page.
- Ensure that "Authentication Methods" setting in the "Credentials" tab is set to "None"
- Scroll down and click on the "Show Advanced Settings" link.
- Under "Advanced Settings", click on the "OAuth" tab.
- Ensure that "JsonWebToken Signature Algorithm" is set to
RS256
and that "OIDC Conformant" is enabled. Next, configure the following URLs for your application under the "Application URIs" section of the "Settings" page:
http://localhost:3000
http://localhost:3000
These URLs should reflect the origins that your application is running on. Allowed Callback URLs may also include a path, depending on where you're handling the callback (see below).
Take note of the Client ID and Domain values under the "Basic Information" section. You'll need these values in the next step.
The library needs issuerBaseURL, baseURL, clientID and secret to request and accept authentication. These can be configured with environmental variables:
1ISSUER_BASE_URL=https://YOUR_DOMAIN 2CLIENT_ID=YOUR_CLIENT_ID 3BASE_URL=https://YOUR_APPLICATION_ROOT_URL 4SECRET=LONG_RANDOM_VALUE
... or in the library initialization:
1// index.js 2 3const { auth } = require('express-openid-connect'); 4app.use( 5 auth({ 6 issuerBaseURL: 'https://YOUR_DOMAIN', 7 baseURL: 'https://YOUR_APPLICATION_ROOT_URL', 8 clientID: 'YOUR_CLIENT_ID', 9 secret: 'LONG_RANDOM_STRING', 10 idpLogout: true, 11 }) 12);
With this basic configuration, your application will require authentication for all routes and store the user identity in an encrypted and signed cookie.
Errors raised by this library are handled by the default Express error handler which, in the interests of security, does not include the stack trace or error message in the production environment. If you write your own error handler, you should not render the error message or the OAuth error
/error_description
properties without using a templating engine that will properly escape them first.
To write your own error handler, see the Express documentation on writing Custom error handlers.
For other comprehensive examples such as route-specific authentication, custom application session handling, requesting and using access tokens for external APIs, and more, see the EXAMPLES.md document.
See the examples for route-specific authentication, custom application session handling, requesting and using access tokens for external APIs, and more.
genid
If you create your own session id when using Custom Session Stores by overriding the genid
configuration, you must use a suitable cryptographically strong random value of sufficient size to prevent collisions and reduce the ability to hijack a session by guessing the session ID.
Explore the express-openid-connect API.
Provided middleware:
We appreciate feedback and contribution to this repo! Before you get started, please see the following:
To provide feedback or report a bug, please raise an issue on our issue tracker.
Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.
Auth0 is an easy to implement, adaptable authentication and authorization platform. To learn more checkout Why Auth0?
This project is licensed under the MIT license. See the LICENSE file for more info.
The latest stable version of the package.
Stable Version
1
7.5/10
Summary
URL Redirection to Untrusted Site ('Open Redirect') in express-openid-connect
Affected Versions
< 2.7.2
Patched Versions
2.7.2
1
4.6/10
Summary
Session fixation in express-openid-connect
Affected Versions
>= 2.3.0, < 2.5.2
Patched Versions
2.5.2
No security vulnerabilities found.
express-openid-connect-baron
Express middleware to protect web applications using OpenID Connect. Forked from auth0/express-openid-connect
openid-client
OAuth 2 / OpenID Connect Client API for JavaScript Runtimes
passport-auth0
Auth0 platform authentication strategy for Passport.js
passport-openidconnect
OpenID Connect authentication strategy for Passport.