UNPKG

@aws-amplify/auth

Version:
88 lines (77 loc) 2.6 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { AuthConfig, AuthTokens, FetchAuthSessionOptions, KeyValueStorageInterface, TokenProvider, } from '@aws-amplify/core'; import { CognitoAuthSignInDetails } from '../types'; export type TokenRefresher = ({ tokens, authConfig, username, }: { tokens: CognitoAuthTokens; authConfig?: AuthConfig; username: string; }) => Promise<CognitoAuthTokens>; export type AuthKeys<AuthKey extends string> = Record<AuthKey, string>; export const AuthTokenStorageKeys = { accessToken: 'accessToken', idToken: 'idToken', oidcProvider: 'oidcProvider', clockDrift: 'clockDrift', refreshToken: 'refreshToken', deviceKey: 'deviceKey', randomPasswordKey: 'randomPasswordKey', deviceGroupKey: 'deviceGroupKey', signInDetails: 'signInDetails', oauthMetadata: 'oauthMetadata', }; export interface AuthTokenStore { getLastAuthUser(): Promise<string>; loadTokens(): Promise<CognitoAuthTokens | null>; storeTokens(tokens: CognitoAuthTokens): Promise<void>; clearTokens(): Promise<void>; setKeyValueStorage(keyValueStorage: KeyValueStorageInterface): void; getDeviceMetadata(username?: string): Promise<DeviceMetadata | null>; clearDeviceMetadata(username?: string): Promise<void>; setOAuthMetadata(metadata: OAuthMetadata): Promise<void>; getOAuthMetadata(): Promise<OAuthMetadata | null>; } export interface AuthTokenOrchestrator { setTokenRefresher(tokenRefresher: TokenRefresher): void; setAuthTokenStore(tokenStore: AuthTokenStore): void; getTokens( options?: FetchAuthSessionOptions, ): Promise< (AuthTokens & { signInDetails?: CognitoAuthSignInDetails }) | null >; setTokens({ tokens }: { tokens: CognitoAuthTokens }): Promise<void>; clearTokens(): Promise<void>; getDeviceMetadata(username?: string): Promise<DeviceMetadata | null>; clearDeviceMetadata(username?: string): Promise<void>; setOAuthMetadata(metadata: OAuthMetadata): Promise<void>; getOAuthMetadata(): Promise<OAuthMetadata | null>; } export interface CognitoUserPoolTokenProviderType extends TokenProvider { setKeyValueStorage(keyValueStorage: KeyValueStorageInterface): void; setAuthConfig(authConfig: AuthConfig): void; } export type CognitoAuthTokens = AuthTokens & { refreshToken?: string; deviceMetadata?: DeviceMetadata; clockDrift: number; username: string; signInDetails?: CognitoAuthSignInDetails; }; export interface DeviceMetadata { deviceKey?: string; deviceGroupKey?: string; randomPassword: string; } export interface OAuthMetadata { oauthSignIn: boolean; }