* All dependancies updated, including the example to include latest release of Next.js and React. * Includes fix for Keycloak strategy support and improved oAuth strategy compatibility. * Includes enhancement for exposing additional parameters when calling getProfile(). * `sessionResave` now defaults to `true`, which ensures sessions always rotate properly. This can be disabled for special use cases - it does not work well with some Express Session Stores, but for most people it should be fine and should rotate sessions correctly. If set to `false` user sessions are likely to expire prematurely. It is strongly recommended you do not change this from the default setting. As a side effect, this will case all sessions - including anonymous sessions created when users have connected but not logged in yet - to be saved as a session in the store. This is because the current Cross Site Request Forgery option associates a token with a session in the browser. If you want to avoid creating anonymous sessions, set `csrf` to `false` to disable CSRF protection; sessions will then only be created when a user signs in. A future update should include the option to implement CSRF using the Double Submit Cookie method so it can be enabled without causing this side effect.
NextAuth Example
About NextAuth Example
This is an example of how to use the NextAuth module.
Getting Started
This project as is run the same way as any Next.js project.
To run it locally, just use:
npm run dev
To run it it production mode, use:
npm build
npm start
Using NextAuth
NextAuth is included in this project here:
- index.js
Pages
This example includes the following pages:
- pages/index.js
- pages/auth/index.js
- pages/auth/error.js
- pages/auth/check-email.js
- pages/auth/callback.js
The file pages/auth/credentials.js provides an additional example of how to use a custom authentication handler defined in next-auth.functions.js.
Configuration
It also includes the following configuration files:
- next-auth.config.js
- next-auth.functions.js
- next-auth.providers.js
An example .env file is provided in .env.example which you can copy over to use for simple configuration:
SERVER_URL=http://localhost:3000
MONGO_URI=mongodb://localhost:27017/my-database
FACEBOOK_ID=
FACEBOOK_SECRET=
GOOGLE_ID=
GOOGLE_SECRET=
TWITTER_KEY=
TWITTER_SECRET=
EMAIL_FROM=username@gmail.com
EMAIL_SERVER=smtp.gmail.com
EMAIL_PORT=465
EMAIL_USERNAME=username@gmail.com
EMAIL_PASSWORD=
If you don't specify a MONGO_URI it will use an in-memory data store for user and session data.
If you don't specify oAuth or SMTP email details you will not be able to log in.
For a more complete example with live demo see nextjs-starter.now.sh.