@@ -2,6 +2,23 @@ import CredentialsProvider from "next-auth/providers/credentials";
2
2
import NextAuth from "next-auth/next" ;
3
3
import { signIn } from "@/lib/strapi/auth" ;
4
4
5
+ type StrapiResponse = {
6
+ jwt : string ;
7
+ user : {
8
+ id : number ;
9
+ username : string ;
10
+ email : string ;
11
+ provider : string ;
12
+ confirmed : boolean ;
13
+ blocked : boolean ;
14
+ createdAt : string ;
15
+ updatedAt : string ;
16
+ } ;
17
+ error ?: {
18
+ details : string [ ] ;
19
+ } ;
20
+ } ;
21
+
5
22
const authOptions = {
6
23
secret : process . env . NEXTAUTH_SECRET ,
7
24
providers : [
@@ -14,14 +31,19 @@ const authOptions = {
14
31
async authorize ( credentials ) {
15
32
try {
16
33
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 ) ;
21
34
35
+ const strapiResponse : StrapiResponse = await signIn ( credentials . email , credentials . password ) ;
36
+
37
+ if ( strapiResponse . error ) {
22
38
return null ;
23
39
}
24
- return strapiResponse ;
40
+
41
+ return {
42
+ jwt : strapiResponse . jwt ,
43
+ id : String ( strapiResponse . user . id ) ,
44
+ email : strapiResponse . user . email ,
45
+ name : strapiResponse . user . username ,
46
+ } ;
25
47
} catch {
26
48
return null ;
27
49
}
@@ -32,15 +54,15 @@ const authOptions = {
32
54
session : async ( { session, token } : { session : any ; token : any } ) => {
33
55
session . id = token . id ;
34
56
session . jwt = token . jwt ;
35
- return Promise . resolve ( session ) ;
57
+ return session ;
36
58
} ,
37
- jwt : async ( { token, user } ) => {
38
- const isSignIn = user ? true : false ;
39
- if ( isSignIn ) {
59
+ jwt : async ( { token, user } : { token : any ; user : any } ) => {
60
+ if ( user ) {
40
61
token . id = user . id ;
41
62
token . jwt = user . jwt ;
63
+ token . email = user . email ;
42
64
}
43
- return Promise . resolve ( token ) ;
65
+ return token ;
44
66
} ,
45
67
} ,
46
68
} ;
0 commit comments