next.js iron会话req.session.user未定义



我正在使用next.js和iron会话为我的团队的机器人制作一个面板。

但是,当我保存会话并检查它时,req.session.user是未定义的。

如何修复此错误???

这是我的错误代码:

page/auth.js:

Auth.getInitialProps = async ({ query }) => {
//console.log(query.code)
const result = await axios.get(`https://lunasite.prnm789.repl.co/api/sign/in?code=${query.code}`)
const { access_token, refresh_token } = await result.data
const newsession = await axios.post(`https://lunasite.prnm789.repl.co/api/session/new`, {
access_token: access_token,
refresh_token: refresh_token
})
...
}

page/api/session/new.js:

import { withIronSessionApiRoute } from 'iron-session/next'
import { sessionOptions } from '../../../lib/config'
export default withIronSessionApiRoute(userRoute, sessionOptions)
async function userRoute(req, res) {
if (req.method == "POST") {
const { access_token, refresh_token } = req.body
...
try {
req.session.user = {
isLoggedIn: true,
access_token: access_token,
refresh_token: refresh_token
}
await req.session.save()
...
} catch(e) {
...
}
} else {
...
}
}

lib/config.js:

export const sessionOptions = {
cookieName: "luna_cookie",
password: process.env.sessionCookiePass,
cookieOptions: {
secure: process.env.NODE_ENV === "production",
maxAge: 604800 - 60
},
}

page/api/session/get.js:

import { withIronSessionApiRoute } from "iron-session/next";
import { sessionOptions } from "../../../lib/config";
export default withIronSessionApiRoute(getRoute, sessionOptions);
function getRoute(req, res) {
res.send(String(req.session.user))
}

你能检查一下你的前端域和网络请求url对我来说是否相同吗?我遇到了这个问题,我为NEXT_PUBLIC_VERCEL_URL的请求设置了baseurl,这是一个为该独特部署自动生成的URL,长话短说,我的会话保存在主域上,但我的请求在其他地方。当我用一条绝对路径替换它时,我所有的问题都消失了

最新更新