Прямое перенаправление на страницу входа в систему AAD при попадании по URL-адресу в браузере

#reactjs #react-component #msal.js #react-aad-msal #msal-react

Вопрос:

Используя MSAL 2.0 в React, мы можем легко перенаправить на страницу входа, используя следующие методы

  1. Войдите в систему с помощью всплывающего окна
  2. Войдите в систему с перенаправлением

Но оба метода могут быть выполнены с помощью действия кнопки входа/входа.

В моем случае я хочу перенаправить свое приложение React непосредственно на страницу входа в систему, когда URL-адрес отображается в браузере, т. Е. без действия кнопки.

Кроме того, при перенаправлении мне также нужно передать несколько областей для получения согласия пользователя.

Я провел некоторое исследование, но не нашел никаких возможных решений. Пожалуйста, кто-нибудь может мне помочь с этим ?

Ответ №1:

Когда приложение запускается, оно всегда начинается с app.js. В app.js конструктор класса вы можете проверить свой токен, является ли он действительным/недействительным и / или истек ли срок его действия.

Чтобы перенаправить ваше приложение React непосредственно на страницу входа в систему, попробуйте сделать это:

 state = {
  show: false;
}

componentWillReceiveProps(nextProps) {
  if (nextProps.children !== this.props.children) {
    this.checkAuth();
  }
}

componentDidMount() {
  this.checkAuth();
}

checkAuth() {
  Api.checkAuth()
  .then(result => {
    if (result.success) {
      this.setState({ show: true });
    } else {
  return <Redirect to='/login'  />
    }
  });
}