Firebase Google signInWithRedirect не перенаправляет на указанную страницу при успешной аутентификации - PullRequest
0 голосов
/ 03 марта 2019

Требуется небольшая помощь / объяснение следующей проблемы.Я использую Vue и Firebase для своего проекта.

Я пытаюсь настроить вход Google Firebase, вызвав signInWithRedirect .Сама аутентификация работает, но не совсем так, как я хочу.

Мне нужно, чтобы она перенаправляла на / панель мониторинга после аутентификации, но в настоящее время она перенаправляет обратно на страницу / страницу входа после короткой загрузки.

Я понимаю, что должен использовать getRedirectResult , но я не уверен, как именно его вызвать.Был бы очень признателен, если бы кто-нибудь мог объяснить, как я могу правильно написать свой код, чтобы получить желаемые результаты.

.signInWithRedirect(fb.googleProvider)
.then(credential => {
this.$store.commit("setCurrentUser", credential.user)
fb.usersCollection.doc(credential.user.uid).set({
}).then(() => {
this.$store.dispatch("fetchUserProfile")
this.updateGmailData()
this.$router.push("/dashboard")
}).catch(err => {
console.log(err)
})
}).catch(err => {
console.log(err);
});
},

Я считаю, что моя первоначальная аутентификация должна выглядеть примерно так -

googleLogin() {
fb.auth.signInWithPopup(fb.googleProvider)
}

И после этого я должен настроить функцию для getRedirectResult , которая должна подтолкнуть маршрутизатор к / приборной панели?

Как сделать перенаправление для ожидания getRedirectResult и перенаправить / панель инструментов после получения необходимых результатов.

У меня нет идей, как это реализовать.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

signInWithRedirect перенаправит обратно на ту же страницу, где будет выполнен вход.Затем вы можете использовать getRedirectResult() или onAuthStateChanged слушатель для перенаправления на вашу панель мониторинга после того, как пользователь вошел в систему.

В обработчике нажмите кнопку входа, вызовите:

// This will redirect to IdP for sign-in.
firebase.auth.signInWithRedirect(fb.googleProvider);

Затем наНа этой же странице вы можете установить слушателя:

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // User signed in, you can get redirect result here if needed.
    // ...
    this.$router.push("/dashboard");
    // ....
  } else {
    // Show sign in screen with button above.
  }
});
0 голосов
/ 03 марта 2019

Это работает для меня:

googleLogin(){

  this.afAuth.auth.signInWithPopup(new  
  firebase.auth.GoogleAuthProvider()).then(result=>{

     console.log(result)
  }).catch(err=>{
     console.log(err)
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...