如何注销注销后仍然保留Firebase Auth?

时间:2020-01-22 16:12:50

标签: javascript reactjs firebase firebase-authentication

我的应用程序具有注册管理员用户的基本身份验证表。在登录表单中,需要提供电子邮件和密码,并且可以选择“记住我”。最初,我根据用户的选择将Auth持久性设置为“会话”或“本地”,如docs中所示。

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)   // or .LOCAL
  .then(function() { 
    firebase.auth().signInWithEmailAndPassword(email, password) ...

我有一个退出按钮,呼叫firebase.auth().signOut()。似乎已经注销了用户,并重定向到登录屏幕,但是如果重新加载页面,则用户将再次登录,而无需通过SignIn表单。

我考虑过将setPersistence(firebase.auth.Auth.Persistence.NONE)添加到注销逻辑,但是(至少在文档中)它需要用户凭证signInWithEmailAndPassword。问题在于,如果该帐户以前一直保留并登录,则用户没有离开emailpassword。好吧,至少是密码。

我的方法根本上是错误的,还是我需要以其他方式清除本地存储?还是可以将persisterUser设置为“ none”而无需再次调用signInWithEmailAndPassword

1 个答案:

答案 0 :(得分:1)

根据“记住我”复选框设置持久性

// Checked
await firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)

// Unchecked
await firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION)

之后,您可以使用凭据登录用户,而不必担心将任何内容存储在浏览器的本地/会话存储中以及调用

await firebase.auth().signOut() 

用户将被注销