Express 浏览器中未设置Cookie-CORS/端口问题

Express 浏览器中未设置Cookie-CORS/端口问题,express,cookies,axios,next.js,lerna,Express,Cookies,Axios,Next.js,Lerna,上下文: 我只是使用Lerna拆分了现有的Next.js/Express应用程序,将Next.js服务器(在localhost:3000上为前端服务)和我的Express服务器(在localhost:4000上为API服务)分开。因此,我必须使用默认的{baseUrl:localhost:4000}创建一个axios实例,因此我的相对路径调用将继续工作(即axios.post('/api/auth/login',{…}))。以前,当服务器同时提供API和Nextjs应用程序时,这一切都正常工作

上下文:

我只是使用Lerna拆分了现有的Next.js/Express应用程序,将Next.js服务器(在
localhost:3000
上为前端服务)和我的Express服务器(在
localhost:4000
上为API服务)分开。因此,我必须使用默认的
{baseUrl:localhost:4000}
创建一个
axios
实例,因此我的相对路径调用将继续工作(即
axios.post('/api/auth/login',{…})
)。以前,当服务器同时提供API和Nextjs应用程序时,这一切都正常工作

问题

在此切换之后,我的身份验证流不再正常工作。正常登录后,页面刷新将擦除用户会话的所有内存。据我所知,饼干还没有准备好。我在我的开发工具中看不到它,当应用程序进行后续调用时,没有cookie存在

当我的应用程序挂载时,它会调用
api/me
,查看用户是否已登录。如果是,它将以用户信息响应,以用户信息补充应用程序。如果他们不是,它不会做任何特别的事情。对
/api/me
的请求不再包含登录调用设置的持久cookie。(开发工具显示从原始登录请求中按预期返回的
Set Cookie
头)

可能有用的信息:

  • 根据我运行我的应用程序的方式(在VSCode中调试与在终端中同时运行
    THREN dev
    命令),我将得到一个CORS错误。我正在使用没有配置的
    cors
    包:
    app.use(cors())
  • 应用程序装载时对
    /api/me
    的调用如下所示:
  • 我正在使用此函数设置cookie
怀疑

  • 这是我不熟悉的cors政策
  • 这是因为
    sameSite
    ()

您找到解决方案了吗?您找到解决方案了吗?
// API.js

`export default axios.create({baseURL: 'http://localhost:4000'})`

// app.js
import API from 'API'
API({
      method: 'get',
      url: '/api/me'
    })
      .then(r => {
        //...
      })
function setCookie(res, token, overwrite, sameSite = true) {
  res.cookie(cookieName, token, {
    httpOnly: true,
    sameSite: sameSite,
    secure: process.env.NODE_ENV === 'production',
    expires: new Date(Date.now() + cookieExpiration),
    overwrite: !!overwrite
  })
}