首页 > 解决方案 > 为多租户架构设置 cookie 的最佳方式

问题描述

需要关于我的解决方案的建议

我在SaaS 架构中有一个多租户产品,这意味着所有客户端都使用相同的 API。所以我们托管在公共域 (xyz.com) 中。

但我们有 N 个前端客户端(例如:abc.com、fb.com、test.com)。

我们需要通过 cookie 将用户的登录信息存储在令牌中。实现这一目标的最佳方法是什么?

问题是:

在浏览器中设置 cookie 时获取与当前主机 URL 相关的无效域属性。chrome的F12窗口网络响应截图

我的网站现在在 abc.com 运行,API 托管在 xyz.com。

尝试在从 abc.com 到 xyz.com 的 Ajax 调用中将域设置为 abc.com 的 cookie,但在浏览器中出现上述问题并且未设置 cookie。

但是如果我将 cookie 域设置为 xyz.com,那么 cookie 是在 abc.com 中设置的。

我的结论:

浏览器将仅接受来自 API 域的 cookie(UI - 有一种方法可以跳过 - 相同站点)。因此,我可以将我的 cookie 设置为仅 HTTP 且安全的 cookie。

xsrf-token -> 将在 http only 安全 cookie x-xsrf-token -> 将在本地存储中

这样它就不会受到 XSS 和 CSRF 的影响(已编辑)

标签: javascriptjavaangularspringcookies

解决方案


推荐阅读