gpt4 book ai didi

javascript - Firebase 注销不起作用

转载 作者:行者123 更新时间:2023-11-30 20:35:47 24 4
gpt4 key购买 nike

我正在对 Google 帐户使用 Firebase 身份验证。登录过程工作正常,但我在注销时遇到问题。当用户单击“注销”按钮时,一切似乎都很好,但是当注销后单击“登录”按钮时,先前登录的用户会自动登录 - 没有提示输入凭据。即使在隐身模式下也会发生这种情况。

这是我正在使用的代码。所有与 Firebase 服务的通信都发生在这里:

function auth() {	
// Initialize Firebase;
firebase.initializeApp(settings);
var provider = new firebase.auth.GoogleAuthProvider();

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;
sessionStorage.setItem('tokenK', token);
// The signed-in user info.
var user = result.user;
var tempName = user.displayName.split(" ");
var fullName = tempName[0].charAt(0).toUpperCase() + tempName[0].toLowerCase().substring(1, tempName[0].length) +
" " + tempName[1].charAt(0).toUpperCase() +tempName[1].toLowerCase().substring(1, tempName[1].length);
sessionStorage.setItem('displayName', fullName);
sessionStorage.setItem('userName', user.email);
}).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(error);
});
}

function logOut(){  
firebase.initializeApp(settings);
var dataJ = JSON.stringify(sessionStorage.getItem('userName'));
var xhttp = new XMLHttpRequest();

firebase.auth().signOut().then(function() {
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 204) {
sessionStorage.removeItem('tokenK');
sessionStorage.removeItem('displayName');
sessionStorage.removeItem('userName');
sessionStorage.removeItem('role');
sessionStorage.removeItem('school');
sessionStorage.removeItem('grade');
window.open('index.html', '_self');
}
};
xhttp.open("POST", settings.protocol + "://" + settings.host + ":" + settings.port + "/api/Login/SignOut", true);
xhttp.setRequestHeader("Content-Type", "application/json");
xhttp.setRequestHeader("Token", sessionStorage.getItem('tokenK'));
xhttp.send(dataJ);
}).catch(function(error) {
console.log(error);
});
}

这里可能是什么问题?谢谢!

最佳答案

我试过这个并且对我有用。

var provider = new firebase.auth.GoogleAuthProvider();provider.setCustomParameters({ 提示:'select_account'});

关于javascript - Firebase 注销不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49860938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com