我正在使用初始 Nuxt 函数(在重新加载时调用)来设置重要数据,例如 userId 和 token。我可以从cookie中读取数据,但无法将数据保存到cookie中。
initAuth(context, req) {
try {
const cookie = req.headers.cookie
if (req && cookie) {
let token = getCookieServerSide('token', cookie)
let userId = getCookieServerSide('userId', cookie)
let deviceId = getCookieServerSide('deviceId', cookie)
if (token) {
context.commit('SET_TOKEN', { token })
}
if (userId) {
userId = parseInt(userId)
context.commit('users/SET_USER_ID', userId, { root: true })
}
if (!deviceId) {
deviceId = generateUniqueId()
setCookie('deviceId', deviceId)
}
context.commit('SET_DEVICE_ID', deviceId)
}
} catch (error) {}
这是初始方法,
setCookie
看起来像这样:
export const setCookie = (name, value) => {
Cookie.set(name, value)
}
通过阅读不同的评论,这应该是有效的解决方案,但 cookie 未保存
您当前的 cookie 库仅与前端代码上的执行兼容。
要在客户端和服务器端设置 cookie,您必须使用支持通用用法的库,例如
universal-cookie
。
cookie-universal-nuxt
在客户端和服务器端设置、获取和删除 cookie,基于之前的库。
您可以像这样在 nuxt 3 服务器端存储 cookie:
export default defineEventHandler(async (event) => {
setCookie(event,"cookie_name_string",cookie_value,{ httpOnly: true })
}