【发布时间】:2018-05-10 14:12:12
【问题描述】:
我对 Laravel 身份验证模块有疑问。
我正在将旧工具重写为 laravel,但必须保留旧的系统数据库结构。
系统使用多个数据库(每个部门分开)并识别 url 应该使用哪个数据库,例如。
www.example.com/foo //use foo DB for foo department
www.example.com/bar //use bar DB for bar department
Foo 和 Bar DB 有自己的 users 表。两个数据库中都存在一些帐户但ID不同,用户名相同。示例:
//foo DB users table
ID username
1 xyz
2 abc
//bar DB users table
ID username
1 qwe
2 xyz
假设我使用 foo deparment(和 DB)作为用户 xyz(id 1)登录到系统。
我现在要转到酒吧部门(和酒吧数据库)。
因此,我以用户 qwe 的身份登录酒吧部门(和 DB),因为系统一直使用我登录系统的 id (1)。
如何改变这种行为并强制系统使用用户名而不是 id 作为在数据库中识别用户的关键?
我知道我可以在用户模型中使用用户名作为主键,但随后我将不得不更改与用户模型相关的所有关系以及 Auth::id() 等其他内容。
有没有更简单的方法?
【问题讨论】:
标签: php laravel authentication eloquent