Files
archived-next-auth/example
Iain Collins 5ad0ace20e Now passes additional option to update
When calling update() after…

1. Invalidating a one time use emailToken (after use).
2. Unlinking an oAuth account.

…it now passes a third option, indicating the property that was deleted from the object (or that should have been):

e.g.

* `functions.update(user, null, { delete: 'emailToken' })`
* `functions.update(user, null, { delete: 'facebook' })`
* `functions.update(user, null, { delete: 'google' })`
* `functions.update(user, null, { delete: 'twitter' })`

This is to make it easier to integrate with databases like Mongoose.

It's needed because if you pass a Mongoose object it will *not let* the key be deleted by NextAuth, so you will have to check for this third pararam in your .update() function and use Mongoose specific commands to unset the field for the user.
2018-02-22 21:39:29 +01:00
..

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:

nmp 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.