Firebase google auth不会完全退出

时间:2018-06-06 17:40:17

标签: javascript firebase firebase-authentication

使用Google提供的非常简单的简单示例(Firebase Google Auth),我无法从谷歌退出。

每次签名我都会使用按钮调用此方法,它允许我登录并导航到本地主机。



function logGoogle() {

firebase.auth().signInWithPopup(provider).then(function(result) {
  // This gives you a Google Access Token. You can use it to access the Google API.
  var token = result.credential.accessToken;
  // The signed-in user info.
  var user = result.user;
  location.href = 'http://localhost:8080';
  // ...
}).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  // The email of the user's account used.
  var email = error.email;
  // The firebase.auth.AuthCredential type that was used.
  var credential = error.credential;
  // ...

  console.log(errorCode);
  console.log(errorMessage);
  console.log(email);
  console.log(credential);
});

}




然而,当我回到包含注销按钮的主菜单时。它会记录会话,不会删除会话。当我重新登录时,我不需要输入谷歌信誉。请记住,我使用Gmail帐户登录谷歌浏览器。



function logOutGoogle() {
  firebase.auth().signOut().then(function () {
    console.log("you logged off");

   
 location.href = 'http://localhost/GoogleVue3/';
  }).catch(function (error) {
    alert(error);
  });
}




我尝试了隐身模式。进入谷歌信用卡,去了应用程序,并决定退出。点击登录谷歌,它会自动转到我的应用程序。

任何建议?

2 个答案:

答案 0 :(得分:1)

您可能真的不想在浏览器中退出Google(因为它将退出Gmail和您正在使用Google应用程序的所有其他标签/窗口)。当您再次点击Firebase auth时,它会直接跳入应用程序(绕过Google登录名,因为它从未真正退出Google)。您可能希望看到Google帐户选择器,而不是立即登录。如果是这样,here's the answer我提出了一个相关的SO问题。

请注意,您描述的问题仅在您仅登录到一个Google / Gmail帐户后才会发生,即就像在incog模式下一样。如果您登录> 1,则始终会得到帐户选择器,以便Firebase可以告诉您的应用您选择了哪个用户。

答案 1 :(得分:0)

基本上,firebase注销功能会注销应用程序本身,但不会在浏览器上注销谷歌。

要完全注销,您需要先退出应用程序,然后如果成功,请在浏览器中退出Google。 然后,这允许用户在他们退出时不再记录。

function signoff() {

  firebase.auth().signOut().then(function () {
    window.alert("you have signed off successfully")
    window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";


    // document.location.href = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://localhost/GoogleVue4";


  }).catch(function (error) {
    console.log(error);

  })

}