mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
* chore(deps): add next and react to dev dependencies * chore: move build configs to avoid crash with next dev * chore: add next js dev app * chore: remove .txt extension from LICENSE file * chore: update CONTRIBUTING.md * chore: watch css under development * style(lint): run linter on index.css * chore: fix some imports for dev server * refactor: simplify client code * chore: mention VSCode extension for linting * docs: reword CONTRIBUTING.md * chore: ignore linting pages and components
84 lines
3.5 KiB
JavaScript
84 lines
3.5 KiB
JavaScript
// @ts-check
|
|
import NextAuth from "next-auth"
|
|
import Providers from "next-auth/providers"
|
|
|
|
export default NextAuth({
|
|
// https://next-auth.js.org/configuration/providers
|
|
providers: [
|
|
Providers.GitHub({
|
|
clientId: process.env.GITHUB_ID,
|
|
clientSecret: process.env.GITHUB_SECRET,
|
|
}),
|
|
],
|
|
// Database optional. MySQL, Maria DB, Postgres and MongoDB are supported.
|
|
// https://next-auth.js.org/configuration/databases
|
|
//
|
|
// Notes:
|
|
// * You must to install an appropriate node_module for your database
|
|
// * The Email provider requires a database (OAuth providers do not)
|
|
|
|
// The secret should be set to a reasonably long random string.
|
|
// It is used to sign cookies and to sign and encrypt JSON Web Tokens, unless
|
|
// a separate secret is defined explicitly for encrypting the JWT.
|
|
|
|
session: {
|
|
// Use JSON Web Tokens for session instead of database sessions.
|
|
// This option can be used with or without a database for users/accounts.
|
|
// Note: `jwt` is automatically set to `true` if no database is specified.
|
|
jwt: true,
|
|
|
|
// Seconds - How long until an idle session expires and is no longer valid.
|
|
// maxAge: 30 * 24 * 60 * 60, // 30 days
|
|
|
|
// Seconds - Throttle how frequently to write to database to extend a session.
|
|
// Use it to limit write operations. Set to 0 to always update the database.
|
|
// Note: This option is ignored if using JSON Web Tokens
|
|
// updateAge: 24 * 60 * 60, // 24 hours
|
|
},
|
|
|
|
// JSON Web tokens are only used for sessions if the `jwt: true` session
|
|
// option is set - or by default if no database is specified.
|
|
// https://next-auth.js.org/configuration/options#jwt
|
|
jwt: {
|
|
encryption: true,
|
|
secret: process.env.SECRET,
|
|
// A secret to use for key generation (you should set this explicitly)
|
|
// secret: 'INp8IvdIyeMcoGAgFGoA61DdBglwwSqnXJZkgz8PSnw',
|
|
// Set to true to use encryption (default: false)
|
|
// encryption: true,
|
|
// You can define your own encode/decode functions for signing and encryption
|
|
// if you want to override the default behaviour.
|
|
// encode: async ({ secret, token, maxAge }) => {},
|
|
// decode: async ({ secret, token, maxAge }) => {},
|
|
},
|
|
|
|
// You can define custom pages to override the built-in pages.
|
|
// The routes shown here are the default URLs that will be used when a custom
|
|
// pages is not specified for that route.
|
|
// https://next-auth.js.org/configuration/pages
|
|
pages: {
|
|
// signIn: '/api/auth/signin', // Displays signin buttons
|
|
// signOut: '/api/auth/signout', // Displays form with sign out button
|
|
// error: '/api/auth/error', // Error code passed in query string as ?error=
|
|
// verifyRequest: '/api/auth/verify-request', // Used for check email page
|
|
// newUser: null // If set, new users will be directed here on first sign in
|
|
},
|
|
|
|
// Callbacks are asynchronous functions you can use to control what happens
|
|
// when an action is performed.
|
|
// https://next-auth.js.org/configuration/callbacks
|
|
callbacks: {
|
|
// signIn: async (user, account, profile) => { return Promise.resolve(true) },
|
|
// redirect: async (url, baseUrl) => { return Promise.resolve(baseUrl) },
|
|
// session: async (session, user) => { return Promise.resolve(session) },
|
|
// jwt: async (token, user, account, profile, isNewUser) => { return Promise.resolve(token) }
|
|
},
|
|
|
|
// Events are useful for logging
|
|
// https://next-auth.js.org/configuration/events
|
|
events: {},
|
|
|
|
// Enable debug messages in the console if you are having problems
|
|
debug: false,
|
|
})
|