@@ -11,7 +11,6 @@ declare module "@fastify/jwt" {
11
11
}
12
12
}
13
13
14
-
15
14
export default fp < FastifyJWTOptions > ( async ( fastify , opts ) => {
16
15
fastify . register ( fastifyJwt , {
17
16
secret : process . env . DB_SECRET_KEY ! ,
@@ -20,60 +19,60 @@ export default fp<FastifyJWTOptions>(async (fastify, opts) => {
20
19
} ,
21
20
} ) ;
22
21
23
- fastify . decorate (
24
- "authenticate" ,
25
- async function ( request : FastifyRequest , reply : FastifyReply ) {
26
- try {
27
- const token = request . headers . authorization ;
28
- if ( token && token . startsWith ( "db_" ) ) {
29
- const apiKey = await fastify . prisma . userApiKey . findFirst ( {
30
- where : {
31
- api_key : token ,
32
- } ,
33
- include : {
34
- User : true ,
35
- }
36
- } ) ;
37
-
38
- if ( ! apiKey ) {
39
- return reply . status ( 401 ) . send ( {
40
- message : "Unauthorized" ,
41
- } ) ;
42
- }
43
- request . user = {
44
- user_id : apiKey . User . user_id ,
45
- username : apiKey . User . username ,
46
- is_admin : apiKey . User . isAdministrator ,
47
- } ;
48
- } else {
49
-
50
- await request . jwtVerify ( ) ;
51
- const { user_id } = request . user ;
22
+ async function authenticate ( request : FastifyRequest , reply : FastifyReply ) {
23
+ try {
24
+ const token = request . headers . authorization ;
25
+ if ( token && token . startsWith ( "db_" ) ) {
26
+ const apiKey = await fastify . prisma . userApiKey . findFirst ( {
27
+ where : {
28
+ api_key : token ,
29
+ } ,
30
+ include : {
31
+ User : true ,
32
+ } ,
33
+ } ) ;
52
34
53
- const user = await fastify . prisma . user . findUnique ( {
54
- where : {
55
- user_id,
56
- } ,
35
+ if ( ! apiKey ) {
36
+ return reply . status ( 401 ) . send ( {
37
+ message : "Unauthorized" ,
57
38
} ) ;
39
+ }
40
+ request . user = {
41
+ user_id : apiKey . User . user_id ,
42
+ username : apiKey . User . username ,
43
+ is_admin : apiKey . User . isAdministrator ,
44
+ } ;
45
+ } else {
46
+ await request . jwtVerify ( ) ;
47
+ const { user_id } = request . user ;
48
+
49
+ const user = await fastify . prisma . user . findUnique ( {
50
+ where : {
51
+ user_id,
52
+ } ,
53
+ } ) ;
58
54
59
- if ( ! user ) {
60
- throw new Error ( "User not found" ) ;
61
- }
62
- request . user = {
63
- user_id : user . user_id ,
64
- username : user . username ,
65
- is_admin : user . isAdministrator ,
66
- } ;
55
+ if ( ! user ) {
56
+ throw new Error ( "User not found" ) ;
67
57
}
68
- } catch ( err ) {
69
- reply . send ( err ) ;
58
+ request . user = {
59
+ user_id : user . user_id ,
60
+ username : user . username ,
61
+ is_admin : user . isAdministrator ,
62
+ } ;
70
63
}
71
- } ,
72
- ) ;
64
+ } catch ( err ) {
65
+ reply . send ( err ) ;
66
+ }
67
+ }
68
+ fastify . decorate ( "authenticate" , authenticate ) ;
73
69
} ) ;
74
70
75
71
declare module "fastify" {
76
72
export interface FastifyInstance {
77
- authenticate ( ) : Promise < void > ;
73
+ authenticate (
74
+ request : FastifyRequest ,
75
+ reply : FastifyReply
76
+ ) : Promise < undefined > ;
78
77
}
79
78
}
0 commit comments