diff --git a/lib/msal-browser/src/config/Configuration.ts b/lib/msal-browser/src/config/Configuration.ts index 254f48811b..2980159801 100644 --- a/lib/msal-browser/src/config/Configuration.ts +++ b/lib/msal-browser/src/config/Configuration.ts @@ -11,6 +11,7 @@ import { Constants, ProtocolMode, OIDCOptions, + CompareOIDCOptions, ServerResponseType, LogLevel, StubbedNetworkModule, @@ -327,7 +328,8 @@ export function buildConfiguration( // Throw an error if user has set OIDCOptions without being in OIDC protocol mode if(userInputAuth?.protocolMode !== ProtocolMode.OIDC && - userInputAuth?.OIDCOptions) { + userInputAuth?.OIDCOptions && + !CompareOIDCOptions(userInputAuth.OIDCOptions, DEFAULT_AUTH_OPTIONS.OIDCOptions)) { throw ClientConfigurationError.createCannotSetOIDCOptionsError(); } @@ -337,7 +339,7 @@ export function buildConfiguration( providedSystemOptions?.allowNativeBroker) { throw ClientConfigurationError.createCannotAllowNativeBrokerError(); } - + const overlayedConfig: BrowserConfiguration = { auth: { ...DEFAULT_AUTH_OPTIONS, diff --git a/lib/msal-common/src/authority/OIDCOptions.ts b/lib/msal-common/src/authority/OIDCOptions.ts index 0e485bce0b..d377370a14 100644 --- a/lib/msal-common/src/authority/OIDCOptions.ts +++ b/lib/msal-common/src/authority/OIDCOptions.ts @@ -12,3 +12,8 @@ export type OIDCOptions = { serverResponseType?: ServerResponseType; defaultScopes?: Array; }; + +export function CompareOIDCOptions(first: OIDCOptions, second: OIDCOptions): boolean { + return (first.serverResponseType === second.serverResponseType && + first.defaultScopes === second.defaultScopes); +}; diff --git a/lib/msal-common/src/index.ts b/lib/msal-common/src/index.ts index 95aaaee397..ace3732ca9 100644 --- a/lib/msal-common/src/index.ts +++ b/lib/msal-common/src/index.ts @@ -48,7 +48,7 @@ export { export { AuthorityFactory } from "./authority/AuthorityFactory"; export { AuthorityType } from "./authority/AuthorityType"; export { ProtocolMode } from "./authority/ProtocolMode"; -export { OIDCOptions } from "./authority/OIDCOptions"; +export { OIDCOptions, CompareOIDCOptions } from "./authority/OIDCOptions"; // Broker export { INativeBrokerPlugin } from "./broker/nativeBroker/INativeBrokerPlugin"; // Cache