如何使用Firebase身份验证重新验证用户?

时间:2020-06-23 14:07:32

标签: javascript node.js firebase google-cloud-firestore nuxt.js

我是Firebase的新手。 在我的nuxt js项目有多个页面的情况下,firestore规则设置为一次读取或写入request.auth!= null。

因此,如果在页面中刷新时,身份验证将消失,并且在终端中显示错误“ permission-denied”。

我尝试了身份验证状态持久性LOCAL,但是它不起作用。 使用这些身份验证持久性模式的目的是什么?

firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)
.then(function() {
return firebase.auth().signInWithEmailAndPassword(email, password);
})

1 个答案:

答案 0 :(得分:1)

Auth会话在您的应用程序的前端自动持久化,但是Nuxt.js包含前端和后端部分。如果要将用户数据存储在前端的某个位置,则可能需要等到用户数据可访问为止。

监听器的示例:

    firebase.auth().onAuthStateChanged(function (user) {
          if (user) {
            console.log('User is logged: ', user);
          }
        });

但是,这只能使用户只能在前端访问,如果要在后端预加载数据,则需要在cookie中存储ID和刷新令牌 使用Nuxt Firebase模块,该模块应为您处理服务人员

因此,在您的情况下,您似乎在尝试访问用户数据之前尝试读取数据(这可能是由于尝试在后端获取数据所致)。