【问题标题】:Is it possible to call local storage in SSR Nuxt application middleware?是否可以在 SSR Nuxt 应用程序中间件中调用本地存储?
【发布时间】:2021-10-21 10:37:35
【问题描述】:

我有一个带有这个中间件的 Nuxt 应用

middleware(context) {
    const token = context.route.query.token;

    if (!token) {
        const result = await context.$api.campaignNewShare.createNewShare();
        context.redirect({'name': 'campaigns-new', 'query': {token: result.data.token}});
        local.storage.setKey(token, new DateTime().getTime());
    }
},

我需要将令牌存储到本地存储,但我不确定这是否可行或安全。

【问题讨论】:

标签: javascript vue.js nuxt.js middleware


【解决方案1】:

不,那是不可能的。 localStorage 是浏览器部分,但在 SSR 上,代码在服务器端进行评估。使用 cookie 是一个很好的解决方案。

我推荐使用这个模块:https://github.com/nuxt-community/universal-storage-module

【讨论】:

  • Cookie 不是很好的解决方案。 LocalStorage 有更多的空间来存储数据。我错过了什么吗?
  • 我有一个问题。如果我在中间件中调用 $storage.setLocalStorage(key, value) 然后重定向到另一个位置。我可以在这个新位置调用 localStorage.getItem('key') 吗?如果像中间件中的 localStorage 那样实际上不可用,我不明白这个包如何处理存储。
  • @Čamo 我同意 cookie 不是最好的解决方案。我相信应该有一个基于身份验证令牌的授权 SSR 解决方案。你看过这篇文章了吗auth.nuxtjs.org/api/options
猜你喜欢
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2014-09-05
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
相关资源
最近更新 更多