我的身份验证工作流程如下:
myclient.com
我在对 API entpoint 的请求中的 x-authorization
标头中发送加密的用户和密码凭证 example.net/login
set-cookie
设置的授权 cookie。example.net/user
的后续请求,其中端点验证这些 cookie。现在,根据当前和即将出台的有关第三方 Cookie 的政策,通过第一响应设置和转发的 Cookie 会被现代浏览器阻止(看起来),并且端点
example.net/user
返回 401 状态代码。当用户在浏览器中启用第三方 cookie 时,它就会起作用。
是否仍然有任何可能的基于 cookie 的授权方式,或者任何替代授权流程,而不强制用户在其浏览器中启用 cookie?
我尝试通过 javascript 在客户端中手动设置 cookie,因为第一个请求的响应数据中也有 json 格式的 cookie。但到目前为止还没有任何效果。
我认为现代浏览器会阻止第三方cookie,因为cookie可以包含个人信息,所以我们不能强迫避免这种情况。
所以我认为你可以使用
localStorage
或sessionStorage
。
请考虑使用jwt进行身份验证和授权。
您可以获取令牌并将其设置为本地或会话存储。
jwt 是流行的身份验证策略。 但如果您更喜欢使用 cookie,我不知道如何避免现代浏览器的行为。 :)