Javascript 未定义本地存储
我正在使用Nuxt.js进行SSR。我有一个登录系统,每当我登录我的应用程序时,我都会得到一个JSON web令牌(JWT)并将其存储在我的Localstorage中 现在的问题是SSR。每当我尝试访问Localstorage时,它都会说它未定义。我发现了一篇关于这个问题的Stackoverflow文章,这是因为代码是服务器端呈现的,所以它无法访问Localstorage 我尝试了Javascript 未定义本地存储,javascript,vue.js,jwt,Javascript,Vue.js,Jwt,我正在使用Nuxt.js进行SSR。我有一个登录系统,每当我登录我的应用程序时,我都会得到一个JSON web令牌(JWT)并将其存储在我的Localstorage中 现在的问题是SSR。每当我尝试访问Localstorage时,它都会说它未定义。我发现了一篇关于这个问题的Stackoverflow文章,这是因为代码是服务器端呈现的,所以它无法访问Localstorage 我尝试了created()。 我还尝试了numtserverinit也没有成功 如何检查客户端的localstorage中是
created()。
我还尝试了numtserverinit
也没有成功
如何检查客户端的localstorage中是否存在令牌,或者是否有更好的方法?您可以调用挂载的
export default {
mounted() {
this.storage();
},
methods:{
storage(){
localStorage.getItem("authToken");
}
}
}
或者将创建的与过程一起使用。浏览器检查
export default {
created() {
this.storage();
},
methods:{
storage(){
if (process.browser){
localStorage.getItem("authToken");
}
}
}
}
检查本地存储是否确实存在。按f12键并转到应用程序选项卡,您将在那里看到本地存储。它将向您显示站点、密钥和值。顺便说一句,您是如何使用本地存储的?服务器端代码无法直接看到Javascript本地存储,您需要客户端以某种方式发送此信息,可以是cookie/ajax/websocket等,甚至是表单帖子。@renatomanali这不是问题,每当我登录时,我都会从后端检索jwt并将其保存在本地存储中。我知道如何检查它是否存在,问题是nuxtjs是服务器端渲染的,因此它无法访问本地存储。我想检查一下这个令牌是否存在pageload@ilijanovic哦,我明白了,如果您使用vuex,效果会更好。@renatomanali我使用vuex,每次刷新后存储都会刷新,因此每次页面刷新后我都需要再次登录。现在我正在使用vuex,希望改进AppEx。问题是从存储中检索数据。不能,因为nuxt是在服务器端呈现的<代码>流程。浏览器
的工作方式正是我想要的,谢谢