|
1 |
| -import GithubProvider from "next-auth/providers/github"; |
2 | 1 | import CredentialsProvider from "next-auth/providers/credentials";
|
3 | 2 | import NextAuth from "next-auth/next";
|
| 3 | +import { signIn } from "@/lib/strapi/auth"; |
4 | 4 |
|
5 | 5 | const authOptions = {
|
| 6 | + secret: process.env.NEXTAUTH_SECRET, |
6 | 7 | providers: [
|
7 |
| - GithubProvider({ |
8 |
| - clientId: process.env.GITHUB_ID ?? "", |
9 |
| - clientSecret: process.env.GITHUB_SECRET ?? "", |
10 |
| - }), |
11 | 8 | CredentialsProvider({
|
12 |
| - name: "Credentials", |
| 9 | + name: "Username or Email", |
13 | 10 | credentials: {
|
14 |
| - username: { label: "Username", type: "text", placeholder: "jsmith" }, |
| 11 | + email: { label: "Email", type: "text" }, |
15 | 12 | password: { label: "Password", type: "password" },
|
16 | 13 | },
|
17 | 14 | async authorize(credentials) {
|
18 |
| - const res = await fetch("/your/endpoint", { |
19 |
| - method: "POST", |
20 |
| - body: JSON.stringify(credentials), |
21 |
| - headers: { "Content-Type": "application/json" }, |
22 |
| - }); |
23 |
| - const user = await res.json(); |
| 15 | + try { |
| 16 | + if (credentials?.email == null || credentials.password == null) return null; |
| 17 | + const strapiResponse = await signIn(credentials.email, credentials.password); |
| 18 | + console.log("juhu", strapiResponse); |
| 19 | + if (strapiResponse.error) { |
| 20 | + console.error(strapiResponse.error.details); |
24 | 21 |
|
25 |
| - if (res.ok && user) return user; |
26 |
| - else return null; |
| 22 | + return null; |
| 23 | + } |
| 24 | + return strapiResponse; |
| 25 | + } catch { |
| 26 | + return null; |
| 27 | + } |
27 | 28 | },
|
28 | 29 | }),
|
29 | 30 | ],
|
| 31 | + callbacks: { |
| 32 | + session: async ({ session, token }: { session: any; token: any }) => { |
| 33 | + session.id = token.id; |
| 34 | + session.jwt = token.jwt; |
| 35 | + return Promise.resolve(session); |
| 36 | + }, |
| 37 | + jwt: async ({ token, user }) => { |
| 38 | + const isSignIn = user ? true : false; |
| 39 | + if (isSignIn) { |
| 40 | + token.id = user.id; |
| 41 | + token.jwt = user.jwt; |
| 42 | + } |
| 43 | + return Promise.resolve(token); |
| 44 | + }, |
| 45 | + }, |
30 | 46 | };
|
31 | 47 |
|
32 | 48 | const handler = NextAuth(authOptions);
|
|
0 commit comments