Next.js with OpenID Connect
Description
Authenticate using OpenID Connect Protocol via Auth.js
npx boilerapp openid-connect文档
Next.js App using Authorization Code Flow with PKCE
This project demonstrates how to implement the Authorization Code Flow with PKCE for a Next.js App.
Disclaimer: This project is for educational purposes only and should not be used in production without proper security review and testing.
Demo
This project is deployed on Cloudflare Pages and on Vercel.
Deploy your own
Deploy the project using Vercel:
Deploy the project using Cloudflare:
Prerequisites
Before getting started, make sure you have the following:
- Node.js installed on your machine
- An OpenID Connect provider that supports the Authorization Code Flow with PKCE
Getting Started
- Clone the repository:
git clone https://github.com/cerberauth/openid-connect-examples.git
- Install the dependencies:
cd openid-connect-examples/nextjs-app
npm ci
-
Configure the OpenID Connect provider (see the Configuration section below).
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173/. -
Click on the "Login" button to initiate the authorization code flow.
-
After successful authentication, you will be redirected back to the application and the user information will be displayed.
Configuration
Configure the OpenID Connect provider:
If you don't have an OpenID Connect provider, you can create a Test Client on the TestID OpenID Connect Provider.
- Obtain the client ID and client secret from your OpenID Connect provider.
- Register the redirect URI for your Next.js App in the provider's developer console.
Update the configuration:
- Create a
.env.localfile in the root directory of your project or copy.env.examplefile. - Add the necessary environment variables to the
.env.localfile. For example:
AUTH_SECRET=secret
AUTH_CLIENT_ID=your-client-id
AUTH_CLIENT_SECRET=your-client-secret
Generate a random secret using the following command:
openssl rand -base64 33
Replace secret with the generated secret.
Replace your-client-id and your-client-secret with the actual values provided by your OpenID Connect provider.
Save the .env.local file.
Additional Resources
Prix
Gratuit