【问题标题】:Django set_cookie working on localhost but not on ngrok?Django set_cookie 在本地主机上工作但不在 ngrok 上?
【发布时间】:2022-10-19 05:33:12
【问题描述】:

我正在使用 Django 通过 set_cookie 在响应中返回一个 cookie:

response.set_cookie(
  key = settings.SIMPLE_JWT['AUTH_COOKIE'],
  value = data["refresh"],
  expires = settings.SIMPLE_JWT['REFRESH_TOKEN_LIFETIME'],
  path = settings.SIMPLE_JWT['AUTH_COOKIE_PATH'],
  secure = settings.SIMPLE_JWT['AUTH_COOKIE_SECURE'],
  httponly = settings.SIMPLE_JWT['AUTH_COOKIE_HTTP_ONLY'],
  samesite = settings.SIMPLE_JWT['AUTH_COOKIE_SAMESITE'],
)

其中值是:

SIMPLE_JWT = {
  'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),
  'REFRESH_TOKEN_LIFETIME': timedelta(days=1),

  ...

  'AUTH_COOKIE': 'refresh_token',
  'AUTH_COOKIE_SECURE': False,
  'AUTH_COOKIE_HTTP_ONLY' : True,
  'AUTH_COOKIE_PATH': '/',
  'AUTH_COOKIE_SAMESITE': 'Lax',
}

CORS 设置正确。我也在我的 axios 请求中正确发送了withCredentials: true,

我的问题是,当我在开发中进行测试时(即前端托管在 http://127.0.0.1:3000/ 和后端托管在 http://127.0.0.1:8000/),系统可以正常工作(即设置 cookie)。但是,当我使用 ngrok 将我的后端隧道传输到安全 url 时,没有任何效果。我的回复中仍然有 set-cookie 标头,所以我收到了 cookie - 它只是没有设置它们。另外,我在 Safari 上(因为我知道 Chrome 存在设置 cookie 的问题,因为它需要相同站点和安全的值)。

这是我的回复:here

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您已经尝试将此 https://ae15-86-9-214-172.ngrok.io 添加到您的 cors 允许的来源?

标签: django cookies ngrok


【解决方案1】:

我有同样的问题:正在发送 set-cookie,但实际上并未创建 cookie。你有没有找到解决办法?

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2020-11-03
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多