cookies - 如何使用带有 cookie 的 Nuxt SSR 中间件?
问题描述
我有一个 SSR Nuxt 应用程序。页面代码中有一个中间件。我不知道我是否可以在该中间件中使用 js-cookies 库,以及它是否能按预期工作。我需要在浏览器中获取和设置 cookie,并在服务器上获取 cookie 值。所有这些步骤都在中间件中。
我是说
- 检查是否通过 Cookies.get(key) 设置了 cookie
- 如果没有,则通过 Cookies.set(key, value) 设置 cookie
- 重定向到我想要获取此 cookie 值的服务器
代码应该看起来像
async middleware(context) {
const token = context.route.query.token;
if (!token) {
const cookieToken = Cookies.get('cookieToken');
if( !cookieToken ) {
Cookies.set('cookieTokne', nanoId());
}
const result = await context.$api.campaignNewShare.createNewShare();
context.redirect({'name': 'campaigns-new', 'query': {token: result.data.token}});
}
},
我可以在服务器上设置后获取 cookie,并且可以在重定向后在浏览器中获取它吗?我需要确保同时设置和获取这个中间件。
解决方案
使用nuxt 通用 cookie并在您的模块上注册,这样您就可以在 nuxt 应用程序的任何地方访问该模块。
以您的代码为例:
async middleware(context) {
const token = context.route.query.token;
if (!token) {
const cookieToken = context.$cookies.get('cookieToken');
if( !cookieToken ) {
context.$cookies.set('cookieToken', nanoId());
}
const result = await context.$api.campaignNewShare.createNewShare();
context.redirect({'name': 'campaigns-new', 'query': {token: result.data.token}});
}
},
推荐阅读
- assembly - MIPS 汇编语言中的二维数组中的无限循环
- python - 这个字符串的正则表达式?Python
- arrays - 如何在Ruby中将整数数组压缩为范围和整数数组
- machine-learning - xgboost:在监视列表中使用哪些数据
- java - DeltaSpike 接口配置不可注入
- ios - Firebase iOS 电话身份验证:无法验证电话号码
- reporting-services - 如何向我的 SSRS 报告中添加当前列组之外的单独且不同的列组
- paypal - 使用 OpenCart 3.0.2.0 修复 Paypal 验证地址
- c# - 是否可以仅使用 Blazor WASM 中的 C# 代码来实现条码扫描,还是必须使用 JSInterop 并使用 JS 条码库来代替?
- node.js - 部署到弹性 beantalk 时出现 Npm 安装错误