@@ -12,14 +12,29 @@ import { BaseSecurityHandler } from '../security-handler';
1212
1313export class AccessTokenAuthnHandler extends BaseSecurityHandler {
1414 private static readonly COOKIE_NAME = 'token' ;
15+ private static readonly HEADER_NAME = 'authorization' ;
16+ private static readonly HEADER_PREFIX = 'Bearer ' ;
1517
1618 protected canHandle ( request : FastifyRequest ) : Promise < boolean > {
17- const token = request . cookies ?. [ AccessTokenAuthnHandler . COOKIE_NAME ] ;
18- const hasToken = ! isNil ( token ) ;
19+ const hasToken = this . getAccessToken ( request ) !== undefined ;
1920 const skipAuth = request . routeOptions . config ?. skipAuth ?? false ;
2021 return Promise . resolve ( hasToken && ! skipAuth ) ;
2122 }
2223
24+ private getAccessToken ( request : FastifyRequest ) : string | undefined {
25+ const header = request . headers [ AccessTokenAuthnHandler . HEADER_NAME ] ;
26+ if ( header ?. startsWith ( AccessTokenAuthnHandler . HEADER_PREFIX ) ) {
27+ return header . substring ( AccessTokenAuthnHandler . HEADER_PREFIX . length ) ;
28+ }
29+
30+ const cookieToken = request . cookies ?. [ AccessTokenAuthnHandler . COOKIE_NAME ] ;
31+ if ( ! isNil ( cookieToken ) ) {
32+ return cookieToken ;
33+ }
34+
35+ return undefined ;
36+ }
37+
2338 protected async doHandle ( request : FastifyRequest ) : Promise < void > {
2439 try {
2540 const accessToken = this . extractAccessTokenOrThrow ( request ) ;
@@ -48,7 +63,7 @@ export class AccessTokenAuthnHandler extends BaseSecurityHandler {
4863 }
4964
5065 private extractAccessTokenOrThrow ( request : FastifyRequest ) : string {
51- const accessToken = request . cookies ?. [ AccessTokenAuthnHandler . COOKIE_NAME ] ;
66+ const accessToken = this . getAccessToken ( request ) ;
5267
5368 if ( isNil ( accessToken ) ) {
5469 throw new ApplicationError ( {
0 commit comments