Ссылка на забытый пароль не работает в Azure b2c с использованием msal в приложении angular 7 - PullRequest
0 голосов
/ 12 марта 2019

Я могу зарегистрироваться и войти через Azure B2C, но при нажатии на ссылку забытого пароля он перенаправляется на домашнюю страницу.

private app: any;
public user: any;

constructor() {
  this.app = new Msal.UserAgentApplication(
                   this.applicationConfig.clientID,
                   this.applicationConfig.authority,
                   (errorDesc, token, error, tokenType)=>{},          
                   { 
                     redirectUri: this.applicationConfig.redirectUrl,
                     validateAuthority:false
                   }
                 );
  // this.app.redirectUri=this.applicationConfig.redirectUrl;
}

public login() {
  let tokenData = '';
  error=>{this.redirectIfForgotPassword();}
  this.app.loginRedirect(this.applicationConfig.b2cScopes)
          .then(data => {tokenData = data; });
}

public redirectIfForgotPassword() {
  alert("pwd");
  const errorDesc = this.appPR.errorDesc;
  if (errorDesc && errorDesc.indexOf('AADB2C90118') > -1) {
    const authUrlSplit = this.applicationConfig.authority.split('/');
    const authorityUrl = `${authUrlSplit.slice(0, authUrlSplit.length - 1).join('/')}/${this.applicationConfig.passwordResetPolicy}`;

    this.app.authority =authorityUrl;
    localStorage.setItem("app_error", this.app.error);
    //sessionStorage.remove(this.app.error);

    this.login();
    return false;
  }
  return true;
}

public getUser() {
  const user = this.app.getUser();
  if (user) {
      return user;
  } else {
      return null;
  }     
}

public logout() {
  this.app.logout();
}

public getToken() {
  return this.app.acquireTokenSilent(this.applicationConfig.b2cScopes)
                .then(accessToken => {
                   // console.log(accessToken);       
                    return accessToken;
                }, error => {
                    return this.appPR.acquireTokenPopup(this.applicationConfig.b2cScopes)
                                    .then(accessToken => {             
                                        return accessToken;
                                    }, err => {
                                     //  console.error(err);
                                    });
                });
    }    
}

URL-адрес, который я получаю после нажатия на ссылку пароля Forgor:

http://localhost:4200/#error=access_denied&error_description=AADB2C90118%3a+The+user+has+forgotten+their+password.%0d%0aCorrelation+ID%3a+228682a8-8e05-40be-b3c3-936a932fcfd2%0d%0aTimestamp%3a+2019-03-12+05%3a35%3a51Z%0d%0a&state=6eff9580-1aef-43c7-89a3-d17253d4a286

Метод redirectIfForgotPassword не вызывается. Проверьте, правильный ли мой синтаксис. Предложить некоторые изменения для этого кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...