我试图建立一个多租户SaaS应用程序,我知道有多种方法,但我选择了一个我认为最适合的多数据库。多租户SaaS应用程序的最佳方法
所以我为每个租户创建一个数据库,并在主分区 中存储租户表,并根据子域将用户连接到各自的数据库。
现在我的问题是在哪里存储用户,在主分贝?或租户数据库,存储在主分贝的用户将使其难以获得其他数据库的用户相关模型,但将其存储在租户数据库将使其难以对所有用户进行身份验证...
也最好的场景是什么?
- 进行身份验证,获取jwt令牌。
- 向每个请求发送令牌。
- 对每个请求验证令牌,检查子域,连接到各自的租户数据库,执行请求。
这是一个好方法吗?我应该如何处理用户表问题? ThnQ
“保存它里面的租户数据库将难以对所有用户进行身份验证”为什么你想这样做吗? –
也许我没有说清楚......如果我把它存储在租户数据库中,当用户第一次登录时没有指定哪个租户。我怎么知道从哪个数据库进行身份验证? – Sherif
要么通过使用看起来像电子邮件的用户标识(例如,[email protected])明确指定租户,要么通过查看提供请求的域名来隐式确定租户。无论哪种情况,您都希望您的用户标识在每个承租人中都是唯一的,而不是在所有承租人中唯一。也就是说,如果有人在租户#1内设置了用户标识,那么这不应该阻止其他人在租户#2内使用用户标识。 –