注意:我昨天发布了同样的问题,但有不同的解释,现在我正在完全编辑它,并尝试从不同方面解释我的观点。
我正在尝试为多租户网站实施身份验证流程,我们将在其中注册不同的公司,例如:公司1,公司2等,每个公司将有多个用户,如公司1将拥有User1,User2等上。
在这里,由于一些强有力的原因,我为每家公司使用单独的数据库。我希望用户访问该网站,只需在不使用任何单独域名的情况下进行身份验证。每个公司都有一个不同的域名(例如company1.mysite.com),但登录后用户将被重定向到他自己的域名。
所以,我的问题是,如何在登录时从各自的数据库中验证每个用户?
谢谢
答案 0 :(得分:0)
在一天结束时,您根本无法ping所有提取用户并希望匹配的数据库。不过,我会建议如下:
一个特殊的映射数据库,用于保存用户及其各自的公司数据库。为了增加安全性,您可以将电子邮件视为密码,使用预定义的盐存储加密版本,当用户输入要登录的电子邮件时,使用两个加密的电子邮件地址对映射数据库进行查找。您需要小心保持此数据库同步良好。如果您的数据库位于同一台服务器上,我可能会建议插入和更新触发器。
在成功对其公司数据库进行身份验证时,您可能希望将DB名称存储在用户会话中,以防止对映射数据库进行持续查找。成功验证后,您也可以使用子域映射到DB。