mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
* feat(adapter): remove built-in adapters and database BREAKING CHANGE: From now on, you will have to import your own adapter Check out https://github.com/nextauthjs/adapters The migration is super easy and has HUGE advantages for those not using TypeORM. ```diff // [...nextauth].js + import TypeORMAdapter from "@next-auth/typeorm-legacy-adapter" import NextAuth from "next-auth" ... export default NextAuth({ - database: "yourconnectionstring", + adapter: TypeORMAdapter("yourconnectionstring") }) ``` Co-authored-by: Lluis Agusti <hi@llu.lu> Co-authored-by: Giovanni Carnel <479046+g10@users.noreply.github.com>
79 lines
2.1 KiB
JavaScript
79 lines
2.1 KiB
JavaScript
import NextAuth from "next-auth"
|
|
import EmailProvider from "next-auth/providers/email"
|
|
import GitHubProvider from "next-auth/providers/github"
|
|
import Auth0Provider from "next-auth/providers/auth0"
|
|
import TwitterProvider from "next-auth/providers/twitter"
|
|
import CredentialsProvider from "next-auth/providers/credentials"
|
|
|
|
export default NextAuth({
|
|
// Used to debug https://github.com/nextauthjs/next-auth/issues/1664
|
|
// cookies: {
|
|
// csrfToken: {
|
|
// name: 'next-auth.csrf-token',
|
|
// options: {
|
|
// httpOnly: true,
|
|
// sameSite: 'none',
|
|
// path: '/',
|
|
// secure: true
|
|
// }
|
|
// },
|
|
// pkceCodeVerifier: {
|
|
// name: 'next-auth.pkce.code_verifier',
|
|
// options: {
|
|
// httpOnly: true,
|
|
// sameSite: 'none',
|
|
// path: '/',
|
|
// secure: true
|
|
// }
|
|
// }
|
|
// },
|
|
providers: [
|
|
EmailProvider({
|
|
server: process.env.EMAIL_SERVER,
|
|
from: process.env.EMAIL_FROM,
|
|
}),
|
|
GitHubProvider({
|
|
clientId: process.env.GITHUB_ID,
|
|
clientSecret: process.env.GITHUB_SECRET,
|
|
}),
|
|
Auth0Provider({
|
|
clientId: process.env.AUTH0_ID,
|
|
clientSecret: process.env.AUTH0_SECRET,
|
|
domain: process.env.AUTH0_DOMAIN,
|
|
// Used to debug https://github.com/nextauthjs/next-auth/issues/1664
|
|
// protection: ["pkce", "state"],
|
|
// authorizationParams: {
|
|
// response_mode: 'form_post'
|
|
// }
|
|
protection: "pkce",
|
|
}),
|
|
TwitterProvider({
|
|
clientId: process.env.TWITTER_ID,
|
|
clientSecret: process.env.TWITTER_SECRET,
|
|
}),
|
|
CredentialsProvider({
|
|
name: "Credentials",
|
|
credentials: {
|
|
password: { label: "Password", type: "password" },
|
|
},
|
|
async authorize(credentials, req) {
|
|
if (credentials.password === "password") {
|
|
return {
|
|
id: 1,
|
|
name: "Fill Murray",
|
|
email: "bill@fillmurray.com",
|
|
image: "https://www.fillmurray.com/64/64",
|
|
}
|
|
}
|
|
return null
|
|
},
|
|
}),
|
|
],
|
|
jwt: {
|
|
encryption: true,
|
|
secret: process.env.SECRET,
|
|
},
|
|
debug: false,
|
|
theme: "auto",
|
|
})
|