无法动态更新Nuxt布局

编辑:这将是一种更好的设计模式,为认证页面创建布局并在登录后重定向,而不使用主页上的条件,而是使用一种将未经身份验证的用户重定向到主页的中间件吗?

我已将应用程序转换为SSR,正在制定身份验证详细信息,欢迎任何资源或设计建议!


我搜索了遇到相同问题的人,并尝试了各种替代方法,但均未成功,所以我想知道是否有人对我可能在这里出错的地方有任何线索。预先感谢!

以下代码应解释我所遇到的问题。我正在使用Nuxt SPA,但无法根据商店更新布局。

console.log('auth or not')返回true,在我的模板中Authenticated = {{isAuth}}也返回true。

问题是,当我将代码保存在vscode中时,布局更新会保持一致,但是当我刷新时,即使考虑到会话已保存且商店getter isAuth返回true,它也会恢复为“默认”。

离题(随时可以考虑)

我是一名自学成才的开发人员,因此,如果您看到任何反模式(可能有很多),我可以向您征询意见。

您是否会建议Nuxt用于SPA项目而不是普通的vue,vuex,vue-router,或者您认为我应该过渡到SSR,因为我处于项目的开端。

这是一个志愿者项目,所以我只是在尝试提高自己的技能并帮助朋友时。任何学习资源将不胜感激!

 import { fireDb } from '~/plugins/firebaseconfig.js'
    import { mapGetters } from 'vuex'

    export default {
      data () {
        return {
          writeSuccessful: false,userLoggedIn: false,}
      },beforeCreate() {
          console.log('before create')
          let _this = this;
          console.log(sessionStorage);
          Object.keys(sessionStorage).forEach((e,i) => {
          //getting user info from session storage
          if(JSON.parse(sessionStorage[e]).uid) {
            let user = JSON.parse(sessionStorage[e]);

            let userInfo = {
              userEmail: user.userEmail,userThumbnail: user.photoURL,username: user.displayName
            };
            _this.$store.commit('userLogin',userInfo)
            console.log('auth or not')
            console.log(this.$store.getters.isAuth);

          }
        })

      },computed:
        mapGetters({
          anuncios: 'anuncios/get',isAuth: 'isAuth'
        }),layout({store}) { return store.getters.isAuth ? 'authenticated' : 'default' },

很抱歉,很长的帖子,再次感谢您抽出宝贵的时间来阅读它!

zhk222zhk 回答:无法动态更新Nuxt布局

切换到SSR模式后,我可以更好地进行调试,我发现在切换到SSR后挂载了布局之后,将调用beforeCreate钩子,在nuxt文档中看到此图像后,我应该意识到这一点。因此,我意识到在进行身份验证之前,应该在检查本机sessionStorage的beforeCreate中检查了isAuth状态获取器。

https://nuxtjs.org/guide/views

还发现这有助于使用中间件进行身份验证。

https://auth.nuxtjs.org/

我解决了我的问题,但是对于我的设计模式仍然不安全,因此仍然容易受到批评,如果我的回答有问题,请纠正我!


编辑

我发现了一个真正帮助了我的示例,如果还有其他人正在努力使用Firebase和nuxt进行身份验证,请查看davidroyer的以下示例。

https://github.com/davidroyer/nuxt-ssr-firebase-auth.v2

本文链接:https://www.f2er.com/3156377.html

大家都在问