未定义本地存储

时间:2019-10-22 10:31:56

标签: javascript vue.js jwt

我正在使用Nuxt.js进行SSR。每当我登录我的应用程序时,我都有一个登录系统,我得到一个JSON Web令牌(JWT)并将其存储在我的Localstorage中。

现在的问题是SSR。每当我尝试访问Localstorage时,它都说未定义。我找到了有关此问题的Stackoverflow文章,这是因为代码是服务器端呈现的,因此无法访问Localstorage。

我尝试了created()生命周期挂钩来检查令牌是否存在于本地存储中,但没有成功。 我也尝试过nuxtServerInit也没有成功。

我该如何检查令牌是否存在于客户端的本地存储中?还是有更好的主意?

1 个答案:

答案 0 :(得分:2)

您可以在mounted上调用函数

export default {
  mounted() {
    this.storage();
  },
  methods:{
    storage(){
       localStorage.getItem("authToken");
    }
  }
}

或使用createdprocess.browser支票

export default {
  created() {
    this.storage();
  },
  methods:{
    storage(){
      if (process.browser){
          localStorage.getItem("authToken");
      }
    }
  }
}