MSAL: возможно ли получить статус входа без всплывающего окна? - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь создать одностраничное приложение, которое позволяет обычному пользователю Google или Microsoft войти в систему. С Google Войти для веб-сайтов , когда пользователь входит в систему и разрешает доступ, онне запрашивается вход при последующих посещениях моего сайта.Мой javascript может проверить, вошел ли пользователь в систему, и выполнить необходимые действия.

С MSAL, однако, нет способа проверить, вошел ли пользователь в систему. Кажется, что мой javascript долженвызовите userAgentApplication.loginPopup (), чтобы проверить, вошел ли пользователь в систему или нет.Это всегда приводит к отображению всплывающего окна, даже если пользователь уже выполнил вход (и разрешил доступ).

Можно ли как-нибудь вызвать функцию в javascript, чтобы выяснить, подписал ли уже пользовательраньше?

Спасибо, заранее.

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны быть в состоянии сделать это с потоком ниже.Он использует acquireTokenSilent, чтобы попытаться проверить текущий токен.Приведенный ниже поток использует его с проверкой ошибок, чтобы вызвать всплывающее окно только при необходимости.

getToken = () => {
  return this.app.acquireTokenSilent(this.applicationConfig.graphScopes).then(
    accessToken => {
      console.log('accessToken :', accessToken)
      return accessToken
    },
    error => {
      console.log('error :', error)
      return this.app
        .acquireTokenPopup(this.applicationConfig.graphScopes)
        .then(
          accessToken => {
            return accessToken
          },
          err => {
            console.error(err)
          }
        )
    }
  )
}
...