我在浏览器中没有看到expressjs(passportjs)发送的cookie

问题描述 投票:0回答:1

所以我使用 vite 创建了一个 React 应用程序,当我使用 Passportjs 完成身份验证时,我在浏览器中看不到任何 Cookie。 在尝试了所有可用的解决方案之后,我决定使用 create-react 应用程序工具创建另一个 React 应用程序,并尝试进行身份验证,结果令人惊讶 现在我在浏览器中看到cookies。我没有更改后端代码中的任何内容,只是使用另一个工具来创建反应应用程序。我不知道发生了什么。

我是否需要对 vite 配置文件进行任何更改才能在浏览器中看到 cookie?我尝试了所有方法,似乎没有任何方法可以与 vite 配合使用。

我也尝试过 ChatGpt,他建议了一些解决方案,但没有帮助。

我根本没有更改 vite 配置文件中的任何内容。

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'


export default defineConfig({
  plugins: [react()],
  
})
reactjs express cookies passport.js vite
1个回答
0
投票

好吧,最后,在玩了几个小时的代码后,我找到了一个可行的解决方案。当我启动使用 VITE 创建的 React 应用程序时,默认情况下它在 http://127.0.0.1:5173 上运行(现在,使用新的 VITE 版本,它默认在 http://localhost:5173/ 上运行) )。当我们使用 create-react-app 创建 React 应用程序时,它在 http://localhost:3000 上运行。我曾经认为 localhost 和 IP 地址 127.0.0.1 是相同的,但事实并非如此,localhost 和 127.0.0.1 之间存在实质性差异。 因此决定使用 VITE 提供的 --host 标志来公开其他 IP 地址。

yarn dev --host  

您会看到这样的输出。现在,React 应用程序正在本地主机上运行,即 http://localhost:5173。

  ➜  Local:   http://localhost:5173/
  ➜  Network: http://192.168.56.1:5173/
  ➜  Network: http://192.168.137.1:5173/
  ➜  Network: http://192.168.116.191:5173/

然后在后端代码中我将 http://127.0.0.1:5173 替换为 http://localhost:5173。现在我可以在浏览器中看到由 PassportJS 设置的 cookie。我的身份验证现在工作正常,没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.