1

我有一个使用异步 http 请求(ajax,使用常见的误称)来执行登录和注册的网站。身份验证 cookie 由异步请求设置,一切正常。

我最近锁定了需要 https 的注册和登录操作。一切似乎都正常,除了返回的身份验证 cookie 无法正常运行并且用户实际上没有登录。

在 Chrome 中,在开发工具的资源下,它没有显示任何已创建的 cookie。如果我转到 Chrome 设置并查看所有 cookie,我可以看到已经创建了一个cookie。也许它是加密的并且不可读?

所以,总结一下:

  • 初始页面使用普通 HTTP 加载
  • 登录操作是一个异步 HTTPS 请求
  • HTTPS 请求返回的身份验证 cookie 似乎不起作用

我怎样才能让它工作?

我应该注意几点:

  • 这不是 CORS 问题。
  • 我知道潜在的中间人攻击。本网站不包含敏感数据。我正在尝试做一些与 reddit 所做的非常相似(如果不完全相同)的事情。
4

1 回答 1

1

我设法弄清楚了这一点。事实证明,在 Http 响应中,您需要将Access-Control-Allow-Credentials标头设置为true. 此外,您必须在客户端 http 请求上设置withCredentials为。true

于 2013-02-09T19:06:25.793 回答