【发布时间】:2020-01-29 08:10:26
【问题描述】:
您好,我有一个基于子域的多租户应用程序。每个客户端都有自己的子域和数据库。
我根据子域设置数据库名称并通过中间件连接。
我使用文件作为会话驱动程序。我发现如果用户登录 sub1.domain.com,那么用户将 laravel_session 值复制到sub2.mydomain.com。如果数据库中有相同ID的用户,则站点允许用户进入。
如何防止这种情况发生?
使用数据库驱动程序是一种解决方案,但我不想使用它。
【问题讨论】:
-
这里有什么问题?到目前为止你做了什么?
-
你是使用自己的验证码还是 laravel 内置的验证码? 我根据子域设置数据库名称并通过中间件连接。中间件是做什么的?它确实闻起来像应用程序特定的问题..
-
我使用 laravel 内置的,每个子域使用相同的会话存储文件夹(一个应用程序)。如果我将 cookie 从 sub1.mydomain.com 复制到 sub2.mydomain.com ,我可以登录到 sub2.mydomain.com 如果 sub2 数据库中有相同 ID 的用户。对不起我的英语
-
@PanelMaker,它的应用程序特定,我们不能轻易复制您的问题。如果您没有帮助我们重新创建问题或检查代码,我们将无法完全帮助您。最好的办法是将会话存储在数据库中,因为每个租户已经拥有自己的数据库。也许你可以尝试一个合适的多租户库,例如Tenancy。
标签: php laravel authentication session