У меня есть следующий код в моей базе Firebase:
document.querySelector('#sign-out').addEventListener('click', () => {
firebase.auth().signOut().then(() => {
document.location = '/sign-in';
}, (error) => {
console.error('Sign Out Error', error);
});
})
Кажется, это работает. Я вижу, что сетевой запрос выполнен успешно, и происходит перенаправление на /sign-in
.
Однако, когда я затем перехожу на /chatroom
, меня считают зарегистрированным. Мой бэкэнд python / flask имеет следующий код на конечной точке:
@app.route("/chatroom")
def chatroom():
if 'idToken' in request.cookies:
id_token = request.cookies.get("idToken")
try:
decoded_token = auth.verify_id_token(id_token)
except:
print("INVALID TOKEN")
return redirect(url_for("sign_in"))
return render_template("chatroom.html")
else:
return redirect(url_for("sign_in"))
Вместо того, чтобы перенаправлять пользователя на /sign-in
, когда я нажимаю на этот путь, Firebase проверяет, что токен действителен, и поэтому я могу продолжить, даже если я вышел из системы. .
Чего мне не хватает?
Редактировать:
Изменен код для отладки:
firebase.auth().signOut().then(() => {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.log('still signed in');
} else {
console.log('signed out');
}
});
}, (error) => {
console.error('Sign Out Error', error);
});
Выводится signed out
.. ... так что я совсем запутался.