Skip to content

Commit

Permalink
jwt format
Browse files Browse the repository at this point in the history
- `middleware/jwt`: option `format` added, now middleware can be used with different formats of tokens, for example Telegram Mini App format `tma <rawData>`
  • Loading branch information
krutoo committed Dec 8, 2024
1 parent fae08fe commit 722af2d
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/middleware/jwt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ export interface JwtMiddlewareOptions {

/** Filter. Takes request, should return boolean. When returns false, JWT payload will not be added to request. */
filter?: (request: Request) => boolean;

/** Allows to change default format "Bearer {accessToken}" of "Authorization" header value. */
format?: (token: string) => string;
}

/**
Expand All @@ -17,6 +20,7 @@ export interface JwtMiddlewareOptions {
export function jwt({
token,
filter = () => true,
format = (tokenValue) => `Bearer ${tokenValue}`,
}: JwtMiddlewareOptions): Middleware {
const getToken = typeof token === 'function' ? token : () => token;

Expand All @@ -31,7 +35,7 @@ export function jwt({
const token = await getToken();

if (typeof token === 'string') {
headers.set('Authorization', `Bearer ${token}`);
headers.set('Authorization', format(token));
}

return next(new Request(request, { headers }));
Expand Down

0 comments on commit 722af2d

Please sign in to comment.