src/registrar/generated/core/auth.ts
Properties |
in |
in:
|
Default value : 'header'
|
Type : "header" | "query" | "cookie"
|
Optional |
Which part of the request do we use to send the auth? |
name |
name:
|
Default value : 'Authorization'
|
Type : string
|
Optional |
Header or query parameter name. |
scheme |
scheme:
|
Type : "basic" | "bearer"
|
Optional |
type |
type:
|
Type : "apiKey" | "http"
|
export type AuthToken = string | undefined;
export interface Auth {
/**
* Which part of the request do we use to send the auth?
*
* @default 'header'
*/
in?: 'header' | 'query' | 'cookie';
/**
* Header or query parameter name.
*
* @default 'Authorization'
*/
name?: string;
scheme?: 'basic' | 'bearer';
type: 'apiKey' | 'http';
}
export const getAuthToken = async (
auth: Auth,
callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,
): Promise<string | undefined> => {
const token =
typeof callback === 'function' ? await callback(auth) : callback;
if (!token) {
return;
}
if (auth.scheme === 'bearer') {
return `Bearer ${token}`;
}
if (auth.scheme === 'basic') {
return `Basic ${btoa(token)}`;
}
return token;
};