Is your feature request related to a problem? Please describe.
I want to use Bearer authentication with AWS Amliply. Amplify returns tokens as promises (as it checks whether the current token has expired and attempts to refresh it).
const bearerToken = (await Auth.currentSession()).getIdToken().getJwtToken();
However, the generated API only accepts plain strings or functions returning plain strings for accessToken.
export interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
username?: string;
password?: string;
accessToken?: string | ((name?: string, scopes?: string[]) => string);
basePath?: string;
baseOptions?: any;
}
Describe the solution you'd like
Just as for apiKey, extend the signature of accessToken to accept promises:
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
In the generated code, only the keyword await must be added in two places
// authentication ApiKeyAuth required
if (configuration && configuration.apiKey) {
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
? await configuration.apiKey("X-API-Key")
: await configuration.apiKey;
localVarHeaderParameter["X-API-Key"] = localVarApiKeyValue;
}
// authentication BearerAuth required
// http bearer authentication required
if (configuration && configuration.accessToken) {
const accessToken = typeof configuration.accessToken === 'function'
? configuration.accessToken() // <-- add "await" here
: configuration.accessToken; // <-- add "await" here
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
}
Describe alternatives you've considered
I'm not aware of any alternative solution
Is your feature request related to a problem? Please describe.
I want to use Bearer authentication with AWS Amliply. Amplify returns tokens as promises (as it checks whether the current token has expired and attempts to refresh it).
However, the generated API only accepts plain strings or functions returning plain strings for
accessToken.Describe the solution you'd like
Just as for
apiKey, extend the signature ofaccessTokento accept promises:In the generated code, only the keyword
awaitmust be added in two placesDescribe alternatives you've considered
I'm not aware of any alternative solution