【问题标题】:session cookie not being sent when front-end is run on a server在服务器上运行前端时未发送会话 cookie
【发布时间】:2020-04-02 04:58:44
【问题描述】:

我正在开展一个项目,我们决定将我们的代码库分成两个独立的存储库(一个反应前端和 .net Web API 后端)。我们在服务器上运行后端并在本地运行前端没有任何问题,但是当需要将前端项目移动到服务器时,我们开始遇到问题。

后端项目使用 .NETs 身份验证来管理会话。我们能够从前端对后端进行匿名 API 调用。但是,任何需要授权的调用都失败并出现 404 未找到。我认为这是因为会话 cookie 没有随 API 请求一起发送,尽管我可能是错的。

我们使用 fetch 从前端进行 API 调用,下面是调用主体的示例:

 {
      method: 'GET',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
      },
      credentials: 'include',
    }

后端 .NET 项目设置为允许来自任何地方的 cors,但我不确定是否需要对服务器进行额外更改,或者是否应该尝试将前端移动到同一服务器。

前端使用 Firebase 托管

后端正在使用 Azure

我会在帖子中更新所需的任何其他信息!

我对托管或服务器不是很熟悉,所以如果能提供任何帮助来解决这个问题,我将不胜感激!

【问题讨论】:

  • 你说本地到服务器工作正常。所以会话 cookie 是通过 API 发送的。添加 404 的日志跟踪,并检查您是否已将与 CORS 相关的 localhost URL 列入白名单。如果您需要打开任何特定的端口以允许调用,也请检查 azure。
  • 您的cookie域或路径可能有问题???

标签: reactjs azure asp.net-web-api session-cookies asp.net-authorization


【解决方案1】:

这个问题原来是 CORS 的问题。 Firebase 服务器提供了 2 个 url 需要在 azure 服务器上列入白名单,而我们之前只将 1 个列入白名单。

mywebsite.web.appmywebsite.firebaseapp.com

两者都需要列出

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2018-08-20
    • 1970-01-01
    • 2020-02-07
    • 2019-10-20
    • 2016-10-15
    • 2020-08-04
    • 2016-07-01
    • 1970-01-01
    相关资源
    最近更新 更多