oAuth2 всплывающее окно пытается закрыть в ie11 - PullRequest
0 голосов
/ 15 марта 2019

У нас есть приложение Angular 6, которое пытается использовать oAuth2 для входа в систему с помощью наших учетных записей Google. Мы используем следующий код:

googleLogin() {
// the provider as well as different things the system needs to login the user
const provider = new firebase.auth.GoogleAuthProvider().addScope(
  'https://www.googleapis.com/auth/plus.login '
  + 'https://www.googleapis.com/auth/userinfo.email '
  + 'profile '
  + 'email '
  + 'https://www.googleapis.com/auth/cloud-language '
  + ''
);
return this.oAuthLogin(provider);
}

private oAuthLogin(provider) {
return this.afAuth.auth.signInWithPopup(provider)
  .then((credential) => {
    return this.setUserData(credential.user)
      .then(() => {
        return credential;
      })
      .catch((error) => {
        console.log('An error occured: ' + error);
        throw error;
      });
  }).catch(error => this.handleSignInError(error));
}

this.afAuth.auth является экземпляром FirestoreAuth.

Предполагается, что это вызовет всплывающее окно, которое позволяет пользователю выбрать учетную запись Google, с помощью которой можно войти в систему. Но происходит то, что всплывающее окно появляется, и до того, как у него появляется шанс выполнить рендеринг, выдается ошибка, и другое появляется всплывающее окно с сообщением «веб-страница, которую вы просматриваете, пытается закрыть окно». Ошибка обрабатывается в блоке catch выше и имеет следующие свойства:

Code: “auth/popup-closed-by-user”
Message: “The popup has been closed by the user before finalizing the operation”

На самом деле не пользователь пытается закрыть всплывающее окно, а что-то другое.

Это происходит только в нашей локальной среде при запуске, т.е. 11. Когда мы работаем в Chrome, этого не происходит. Когда мы запускаем его в нашей среде разработки и разработки, то есть в 11, это не происходит.

Кто-нибудь знает, что происходит и как это исправить? Спасибо.

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