javascript - 为多租户架构设置 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 的影响(已编辑)
解决方案
推荐阅读
- python - Pandas 选择读取 JSON 的行
- android - 谷歌地图中不同颜色的三个点之间的路线绘制
- terraform - 在terraform中连接两个变量
- r - 在 read.csv 之后列名减一(原因是尾随逗号)
- laravel-5 - Voyager:上传数据和图像位置
- vuejs2 - Nativescript vue,如何获取.apk文件?
- microsoft-dynamics - 如何使用 Microsoft Business Central 试用帐户登录?
- java - java中ManagedExecutorService和ExecutorService有什么区别
- java - Jersey 配置未识别服务和 dao 类
- java - 片段中的图像裁剪器给出“无法覆盖片段中的 onActivityResult(int,int,Intent)”错误