Skip to content

Commit 3b4d02d

Browse files
add header token as fallback
1 parent a2286c6 commit 3b4d02d

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

packages/server/api/src/app/core/security/authn/access-token-authn-handler.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,29 @@ import { BaseSecurityHandler } from '../security-handler';
1212

1313
export 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

Comments
 (0)