ember cookie 与服务器 cookie

ember cookie vs server cookie

我正在使用 Ember 和 Ember-simple-auth。这个问题是为了解决我对cookie等的困惑

我已经配置 ember 存储到 Cookie。

我的服务器正在发送一个 cookie 以保存在客户端。即

Set-Cookie: dejavu.session=WwwLQjdfOoNz_-bhyYpBLvzew7IUaJuu; Path=/; Expires=Mon, 28-May-2018 15:59:30 GMT

我理解

  1. 浏览器自动从 header 中的 set-cookie 捕获 cookie(意味着它应该在开发工具中可见)

  2. 浏览器会在后续请求中自动添加此 cookie。

  3. 我不需要使用 Ember 简单身份验证做任何额外的事情,因为服务器 cookie 默认情况下由浏览器处理。

基于这种理解,在 Chrome inspector 中我只看到 ember-simple-auth 的一个 cookie,没有其他任何东西。

我的问题是:

1- 我应该在开发工具中看到一个单独的 cookie(从服务器发送的那个)以及 Ember cookie(由 Ember 简单验证设置)吗?或者我的服务器 cookie 必须嵌入到 Ember Cookie 中?我实际上在我的开发工具上没有看到服务器 cookie,所以我很困惑。

2- ember cookie 存储 Ember 但服务器 cookie 是浏览器将在后续请求中捕获并发送到 header 的概念是否正确?

好的。经过大量测试和探索,我找到了解决方案。 我的两个问题的答案是:

chrome 开发工具中存在错误,无法显示从服务器发送的 cookie。我们不需要在 ember cookie 中嵌入服务器 cookie。浏览器自行管理 cookie。只有服务器必须发送一个 cookie,然后浏览器将对其进行管理,例如,如果它过期则将其丢弃,然后自动将其添加到每个后续请求的 header 中,以通过 api 发送。我们可以在请求 headers.

下的开发工具 'Network' 选项卡中看到发送请求时的 cookie

使用 session cookie 和 Ember-simple-auth 我们不需要在 header 中设置授权者(用于在 header 中添加 cookie)因为这将覆盖 session cookie(由浏览器设置)。

所以当使用Ember-simple-auth和session认证时,正确的流程是:

  1. 添加插件

  2. 设置身份验证器(遵循 github 文档)

  3. 不要设置授权方(如文档中所述)