public async getTokens()

in libs/@guardian/identity-auth/src/tokenManager.ts [176:202]


	public async getTokens({
		refreshIfRequired = false,
		verifyTokens = true,
	} = {}): Promise<Tokens<AC, IC> | undefined> {
		try {
			const tokens = this.getTokensSync();

			if (tokens) {
				if (verifyTokens) {
					await this.#token.verifyTokens(tokens.idToken, tokens.accessToken);
					return tokens;
				}
				return tokens;
			}

			if (refreshIfRequired) {
				const tokenResponse = await this.#token.getWithoutPrompt();
				this.setTokens(tokenResponse.tokens);
				return tokenResponse.tokens;
			}

			return undefined;
		} catch (error) {
			this.clear();
			throw error;
		}
	}