如何防止我的 Cookie 被拦截为第三方 Cookie?

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

我的身份验证工作流程如下:

  1. 从客户端
    myclient.com
    我在对 API entpoint 的请求中的
    x-authorization
    标头中发送加密的用户和密码凭证
    example.net/login
  2. 此请求的响应会发回标头中使用
    set-cookie
    设置的授权 cookie。
  3. 这些 cookie 用于对
    example.net/user
    的后续请求,其中端点验证这些 cookie。

现在,根据当前和即将出台的有关第三方 Cookie 的政策,通过第一响应设置和转发的 Cookie 会被现代浏览器阻止(看起来),并且端点

example.net/user
返回 401 状态代码。当用户在浏览器中启用第三方 cookie 时,它就会起作用。

是否仍然有任何可能的基于 cookie 的授权方式,或者任何替代授权流程,而不强制用户在其浏览器中启用 cookie?

我尝试通过 javascript 在客户端中手动设置 cookie,因为第一个请求的响应数据中也有 json 格式的 cookie。但到目前为止还没有任何效果。

javascript cookies xmlhttprequest third-party-cookies
1个回答
0
投票

我认为现代浏览器会阻止第三方cookie,因为cookie可以包含个人信息,所以我们不能强迫避免这种情况。

所以我认为你可以使用

localStorage
sessionStorage
。 请考虑使用jwt进行身份验证和授权。

您可以获取令牌并将其设置为本地或会话存储。

jwt 是流行的身份验证策略。 但如果您更喜欢使用 cookie,我不知道如何避免现代浏览器的行为。 :)

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