@@ -31,17 +31,22 @@ const Pages = () => {
31
31
* policies may use "acr" instead of "tfp"). To learn more about B2C tokens, visit:
32
32
* https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview
33
33
*/
34
- let tfp = event . payload . idTokenClaims [ 'tfp' ] ?? event . payload . idTokenClaims [ " acr" ] ;
34
+ let tfpClaim = event . payload . idTokenClaims [ 'tfp' ] ? 'tfp' : ' acr' ;
35
35
36
- if ( tfp === b2cPolicies . names . editProfile ) {
36
+ function formatCase ( policyName , tfpClaim ) {
37
+ // A custom policy's "acr" claim is returned in lowercase despite being expressed in uppercase in the Azure portal
38
+ return tfpClaim === 'acr' ? policyName . toLowerCase ( ) : policyName ;
39
+ }
40
+
41
+ if ( event . payload . idTokenClaims [ tfpClaim ] === formatCase ( b2cPolicies . names . editProfile , tfpClaim ) ) {
37
42
// retrieve the account from initial sing-in to the app
38
43
const originalSignInAccount = instance
39
44
. getAllAccounts ( )
40
45
. find (
41
46
( account ) =>
42
47
account . idTokenClaims . oid === event . payload . idTokenClaims . oid &&
43
48
account . idTokenClaims . sub === event . payload . idTokenClaims . sub &&
44
- account . idTokenClaims [ 'tfp' ] === b2cPolicies . names . signUpSignIn
49
+ ( account . idTokenClaims [ 'tfp' ] === b2cPolicies . names . signUpSignIn || account . idTokenClaims [ 'acr' ] === formatCase ( b2cPolicies . names . signUpSignIn , 'acr' ) )
45
50
) ;
46
51
47
52
let signUpSignInFlowRequest = {
@@ -60,7 +65,7 @@ const Pages = () => {
60
65
* you can replace the code below with the same pattern used for handling the return from
61
66
* profile edit flow
62
67
*/
63
- if ( tfp === b2cPolicies . names . forgotPassword ) {
68
+ if ( event . payload . idTokenClaims [ tfpClaim ] === formatCase ( b2cPolicies . names . forgotPassword , tfpClaim ) ) {
64
69
let signUpSignInFlowRequest = {
65
70
authority : b2cPolicies . authorities . signUpSignIn . authority ,
66
71
scopes : [
0 commit comments