1
1
import { eventHandler , getHeader , createError } from 'h3'
2
2
import { $fetch } from 'ofetch'
3
- import { useRuntimeConfig } from '#imports'
4
3
5
4
export default eventHandler ( async ( event ) => {
6
5
// Skip if not a hub request
@@ -11,38 +10,39 @@ export default eventHandler(async (event) => {
11
10
if ( import . meta. dev ) {
12
11
return
13
12
}
14
- const hub = useRuntimeConfig ( ) . hub
15
- const secretKey = ( getHeader ( event , 'authorization' ) || '' ) . split ( ' ' ) [ 1 ]
16
- if ( ! secretKey ) {
13
+ const secretKeyOrUserToken = ( getHeader ( event , 'authorization' ) || '' ) . split ( ' ' ) [ 1 ]
14
+ if ( ! secretKeyOrUserToken ) {
17
15
throw createError ( {
18
16
statusCode : 403 ,
19
17
message : 'Missing Authorization header'
20
18
} )
21
19
}
22
20
23
21
// Self-hosted NuxtHub project, user has to set a secret key to access the proxy
24
- if ( hub . projectSecretKey && secretKey !== hub . projectSecretKey ) {
22
+ const projectSecretKey = process . env . NUXT_HUB_PROJECT_SECRET_KEY
23
+ if ( projectSecretKey && secretKeyOrUserToken !== projectSecretKey ) {
25
24
throw createError ( {
26
25
statusCode : 401 ,
27
26
message : 'Invalid secret key'
28
27
} )
29
28
}
30
29
31
30
// Hosted on NuxtHub
32
- if ( hub . projectKey ) {
31
+ const projectKey = process . env . NUXT_HUB_PROJECT_KEY
32
+ if ( projectKey ) {
33
33
// Here the secretKey is a user token
34
- await $fetch ( `/api/projects/${ hub . projectKey } ` , {
35
- baseURL : hub . url ,
34
+ await $fetch ( `/api/projects/${ projectKey } ` , {
35
+ baseURL : process . env . NUXT_HUB_URL || 'https:// hub.nuxt.com' ,
36
36
method : 'HEAD' ,
37
37
headers : {
38
- authorization : `Bearer ${ secretKey } `
38
+ authorization : `Bearer ${ secretKeyOrUserToken } `
39
39
}
40
40
} )
41
41
return
42
42
}
43
43
44
44
throw createError ( {
45
45
statusCode : 401 ,
46
- message : 'Missing NUXT_HUB_PROJECT_SECRET_KEY'
46
+ message : 'Missing NUXT_HUB_PROJECT_SECRET_KEY envrionment variable or NUXT_HUB_PROJECT_KEY envrionment variable '
47
47
} )
48
48
} )
0 commit comments