label studio 设置主机和端口时出现 CORS 错误

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

我正在尝试在本地服务器中运行 label-studio 并执行反向代理。但是,请关注网站https://labelstud.io/guide/start#Run-Label-Studio-with-HTTPS 我可以运行 label-studio,但在登录和登录时出现 CORS 错误。

[2024-02-04 16:07:29,509] [django.security.csrf::log_response::224] [WARNING] Forbidden (CSRF cookie not set.

python django cors label-studio
1个回答
0
投票

要解决在使用 HTTPS 的反向代理后面运行 Label Studio 时出现的 CSRF cookie 未设置错误和 CORS 问题,您可以尝试以下步骤:

  1. 设置CSRF Cookie域: 确保在 Django 设置中正确设置 CSRF cookie 域。您可以将

    CSRF_COOKIE_DOMAIN
    设置为为您的 Label Studio 实例提供服务的域。如果 Label Studio 通过子路径提供服务,您可能还需要设置
    CSRF_COOKIE_PATH

  2. 配置 CSRF 可信来源: 如果您的 Label Studio 由与主站点不同的域提供服务,您可能需要将该域添加到 Django 设置中的

    CSRF_TRUSTED_ORIGINS

  3. 启用 CORS 标头: 确保您的反向代理配置为正确处理 CORS 请求。您可能需要将必要的 CORS 标头(例如

    Access-Control-Allow-Origin
    Access-Control-Allow-Methods
    Access-Control-Allow-Headers
    Access-Control-Allow-Credentials
    )添加到反向代理配置中。

  4. 设置安全 Cookie: 如果您通过 HTTPS 运行 Label Studio,请确保 Django 中的

    SESSION_COOKIE_SECURE
    CSRF_COOKIE_SECURE
    设置设置为
    True
    以指示 cookie 只能通过安全连接传输。

  5. 检查反向代理配置: 验证您的反向代理是否已正确配置以将必要的标头传递到 Label Studio。例如,如果您使用的是 Nginx,则可能需要包含

    proxy_set_header
    指令来传递
    Host
    X-Real-IP
    X-Forwarded-For
    X-Forwarded-Proto
    X-Forwarded-Host
    标头。

  6. 更新环境变量: 如果您在生产环境中部署 Label Studio,请将

    SSRF_PROTECTION_ENABLED
    环境变量设置为
    true
    以提高安全性。

  7. 设置

    SECRET_KEY
    确保
    SECRET_KEY
    环境变量设置为安全的随机值,并且在服务器重新启动时保持一致。该密钥用于提供加密签名,应保密。

  8. 检查浏览器控制台: 打开浏览器控制台以查找任何其他与 CORS 相关的错误,并确保 CORS 策略包含正确的来源。

  9. 回顾 Django 中间件: 确保

    CsrfViewMiddleware
    包含在 Django 设置中的
    MIDDLEWARE
    设置中。

  10. 检查混合内容: 如果您通过 HTTPS 提供 Label Studio,请确保所有资源也通过 HTTPS 提供,以避免混合内容问题。

如果您已尝试这些步骤但仍然遇到问题,请提供有关反向代理配置的更多详细信息以及来自 Label Studio 和反向代理的任何相关日志。这将有助于更准确地诊断问题。

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