javascript - 如何在 Quasar Vuex 模块中访问 ssrContext 和 Cookie?
问题描述
我正在 Quasar 中编写一个自定义 JWT 身份验证处理程序,我正在努力理解如何将参数传递到 Vuex 模块(或以任何其他方式访问它们)。理想情况下,我想创建一个 NPM 模块/插件,所以我需要找到一种方法来保持一切离散和模块化。
Quasar 文档说,当使用 SSR(我是)时,要访问 cookie,必须:
import { Cookies } from 'quasar'
const cookies = process.env.SERVER ? Cookies.parseSSR(ssrContext) : Cookies;
我正在尝试使用一些可以读取和写入浏览器 cookie 的身份验证例程编写一个模块(理想情况下是一个可以制成 npm 包的独立模块)。类似于以下内容:
// quasar-auth.js
import { Cookies } from 'quasar'
const cookies = process.env.SERVER ? Cookies.parseSSR(ssrContext) : Cookies;
export default {
namespaced: true,
state: {
hello: 'world'
},
getters: {
accessToken: (state, getters) => {
cookies.get('cookie_name')
}
}
}
当然,以上不起作用,因为ssrContext
不是来自任何地方。并将上面的内容转换为一个将getter和setter作为对象返回的函数似乎破坏了一切,所以我找不到传递ssrContext
给模块的方法。
我store/index.js
看起来像这样:
// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import { Auth } from 'quasar-auth' // my module
Vue.use(Vuex)
export default function ({ ssrContext }) {
const Store = new Vuex.Store({
modules: {
Auth // can ssrContext be passed here somewhere...?
}
})
return Store
}
现在我们可以访问ssrContext
,但我将如何将其传递给Auth
?
我真的不清楚我应该在哪里调用Cookies
从 Quasar 导入,同时允许访问ssrContext
和 Vuex 商店。我也尝试过将代码放在类星体boot
文件中,但我只能得到我需要的部分。
任何帮助将非常感激。我对 Vuex 很陌生,如果我误解了一些明显的东西,我很抱歉。
解决方案
推荐阅读
- javascript - 绘制地图前用于地理编码地址的异步函数
- r - 更改 R 中线性模型中使用的调节变量?(双向方差分析)
- debugging - JetBrains Rider 在断点处停止时仅显示堆栈中的一帧。如何解决这个问题?
- python - 从 DOW 创建周标志
- google-sheets - 用每个单元格的时间范围计算电子表格中的每日总时间
- python - joblib 是否重复作为参数传递给函数的类实例?
- c++ - 绘制二维矩阵的行和列
- javascript - 选择特定选项时,HTML 多组选择框使框架围绕当前选择重新居中
- reactive - 如何使用 quarkus 反应式 mysql 客户端和 mutiny api 在 mysql 中插入和获取最后插入的 id
- mysql - 节点 Mysql 从对象插入和修改速记,1 次转换