@@ -12,20 +12,32 @@ export default function EnsureAdmin(eR = false)
12
12
{
13
13
14
14
const authHeader = req . headers [ 'authorization' ] ;
15
- if ( ! authHeader )
16
- return eR ? Promise . resolve ( false ) : APIError ( "Missing 'authorization' in header" ) ( res ) ;
15
+ const tokenQuery = req . query . access_token ;
16
+ if ( ! authHeader && ! tokenQuery )
17
+ return eR ? Promise . resolve ( false ) : APIError ( {
18
+ text : "Missing 'authorization' in header"
19
+ } ) ( res ) ;
17
20
18
- const b64auth = ( authHeader ) . split ( ' ' ) ;
21
+ let b64auth : string [ ] ;
22
+ if ( authHeader )
23
+ b64auth = authHeader . split ( ' ' ) ;
19
24
20
- if ( ! b64auth [ 0 ] . toLocaleLowerCase ( ) . match ( / b a s i c | b e a r e r / g ) )
21
- return eR ? Promise . resolve ( false ) : APIError ( "Missing 'basic' or 'bearer' in authorization" ) ( res ) ;
25
+ if ( tokenQuery )
26
+ b64auth = [ "query" , tokenQuery as string ] ;
22
27
28
+ // @ts -ignore
29
+ if ( ! b64auth [ 0 ] . toLocaleLowerCase ( ) . match ( / b a s i c | b e a r e r | q u e r y / g) )
30
+ return eR ? Promise . resolve ( false ) : APIError ( "Missing 'basic' or 'bearer' in authorization" ) ( res ) ;
31
+
32
+ // @ts -ignore
23
33
if ( ! b64auth [ 1 ] )
24
34
return eR ? Promise . resolve ( false ) : APIError ( "Missing 'buffer' in authorization" ) ( res ) ;
25
-
35
+
36
+ // @ts -ignore
26
37
if ( b64auth [ 0 ] . toLocaleLowerCase ( ) === "basic" )
27
38
{
28
39
// Check if buffer, or base64
40
+ // @ts -ignore
29
41
let [ login , password ] = ( Buffer . isBuffer ( b64auth [ 1 ] ) ? Buffer . from ( b64auth [ 1 ] , 'base64' ) : b64auth [ 1 ] ) . toString ( ) . split ( ':' ) ;
30
42
if ( login . includes ( "==" ) || password . includes ( "==" ) )
31
43
{
@@ -52,9 +64,12 @@ export default function EnsureAdmin(eR = false)
52
64
return eR ? Promise . resolve ( true ) : next ?.( ) ;
53
65
}
54
66
55
- if ( b64auth [ 0 ] . toLocaleLowerCase ( ) === "bearer" )
67
+ // @ts -ignore
68
+ if ( b64auth [ 0 ] . toLocaleLowerCase ( ) === "bearer" || b64auth [ 0 ] . toLocaleLowerCase ( ) === "query" )
56
69
{
70
+ // @ts -ignore
57
71
const token = ( Buffer . isBuffer ( b64auth [ 1 ] ) ? Buffer . from ( b64auth [ 1 ] , 'base64' ) : b64auth [ 1 ] ) . toString ( ) ;
72
+
58
73
! eR ? Logger . warning ( `Authoring admin with token: ${ token } ` ) : null ;
59
74
60
75
try
0 commit comments