@azure/msal-browser
Version:
Microsoft Authentication Library for js
70 lines (67 loc) • 3.29 kB
JavaScript
/*! @azure/msal-browser v5.7.0 2026-04-16 */
;
import { MethodNotImplementedError } from '../error/MethodNotImplementedError.mjs';
import { ChallengeType } from '../../CustomAuthConstants.mjs';
import { StandardInteractionClient } from '../../../interaction_client/StandardInteractionClient.mjs';
import { ResponseHandler, Constants } from '@azure/msal-common/browser';
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
class CustomAuthInteractionClientBase extends StandardInteractionClient {
constructor(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, customAuthApiClient, customAuthAuthority) {
super(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, "");
this.customAuthApiClient = customAuthApiClient;
this.customAuthAuthority = customAuthAuthority;
this.tokenResponseHandler = new ResponseHandler(this.config.auth.clientId, this.browserStorage, this.browserCrypto, this.logger, this.performanceClient, null, null);
}
getChallengeTypes(configuredChallengeTypes) {
const challengeType = configuredChallengeTypes ?? [];
if (!challengeType.some((type) => type.toLowerCase() === ChallengeType.REDIRECT)) {
challengeType.push(ChallengeType.REDIRECT);
}
return challengeType.join(" ");
}
getScopes(scopes) {
if (!!scopes && scopes.length > 0) {
return scopes;
}
return [
Constants.OPENID_SCOPE,
Constants.PROFILE_SCOPE,
Constants.OFFLINE_ACCESS_SCOPE,
];
}
/**
* Common method to handle token response processing.
* @param tokenResponse The token response from the API
* @param requestScopes Scopes for the token request
* @param correlationId Correlation ID for logging
* @returns Authentication result from the token response
*/
async handleTokenResponse(tokenResponse, requestScopes, correlationId, apiId) {
this.logger.verbose("04a00a", correlationId);
const requestTimestamp = Math.round(new Date().getTime() / 1000.0);
// Save tokens and create authentication result
const result = await this.tokenResponseHandler.handleServerTokenResponse(tokenResponse, this.customAuthAuthority, requestTimestamp, {
authority: this.customAuthAuthority.canonicalAuthority,
correlationId: tokenResponse.correlation_id ?? correlationId,
scopes: requestScopes,
}, apiId);
return result;
}
// It is not necessary to implement this method from base class.
acquireToken(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
request) {
throw new MethodNotImplementedError("SignInClient.acquireToken");
}
// It is not necessary to implement this method from base class.
logout(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
request) {
throw new MethodNotImplementedError("SignInClient.logout");
}
}
export { CustomAuthInteractionClientBase };
//# sourceMappingURL=CustomAuthInteractionClientBase.mjs.map