FAQs - Frequently asked questions about express-openid-connect.
Docs Site - explore our docs site and learn more about Auth0.
Getting Started
Requirements
This library supports the following tooling versions:
Node.js ^10.19.0 || >=12.0.0
Install
Using npm in your project directory, run the following command:
npm install express-openid-connect
Getting Started
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.
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:
Allowed Callback URLs: http://localhost:3000
Allowed Logout URLs: 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.
Configuring the SDK
The library needs issuerBaseURL, baseURL, clientID and secret to request and accept authentication. These can be configured with environmental variables:
With this basic configuration, your application will require authentication for all routes and store the user identity in an encrypted and signed cookie.
Error Handling
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.
Use of Custom Session Stores and 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.
Please do not report security vulnerabilities on the public GitHub issue tracker. The Responsible Disclosure Program details the procedure for disclosing security issues.
What is Auth0?
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.
FAQs
Express middleware to protect web applications using OpenID Connect.
The npm package express-openid-connect receives a total of 69,092 weekly downloads. As such, express-openid-connect popularity was classified as popular.
We found that express-openid-connect demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 45 open source maintainers collaborating on the project.
Package last updated on 02 Nov 2023
Did you know?
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.