【问题标题】:How to cancel Firebase Auth persist on logout? [closed]如何在注销时取消 Firebase 身份验证? [关闭]
【发布时间】:2020-01-22 16:12:50
【问题描述】:

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

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

我有注销按钮调用firebase.auth().signOut()。似乎注销了用户,并重定向到登录屏幕,但如果重新加载页面,用户会再次登录,而无需通过登录表单。

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

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

【问题讨论】:

    标签: javascript reactjs firebase firebase-authentication


    【解决方案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() 
    

    用户将被注销

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2017-07-30
      • 2018-04-28
      • 2017-12-18
      相关资源
      最近更新 更多