【发布时间】:2019-06-27 20:30:12
【问题描述】:
目前我的应用中有两个级别的用户。标准用户,使用 Laravel 内置的数据库认证;和一个管理用户,通过Adldap2 使用LDAP 身份验证。
config/auth.php:
...
"guards" => [
"web" => [
"driver" => "session",
"provider" => "users",
],
"admin" => [
"driver" => "session",
"provider" => "admins",
],
"providers" => [
"users" => [
"driver" => "eloquent",
"model" => App\User::class,
],
"admins" => [
"driver" => "ldap",
"model" => App\Admin::class,
],
],
...
这个设置完全没有问题。
现在,有可能拥有来自公司外部的管理用户。这些用户不会通过 LDAP 进行身份验证,而是来自新 admins 表中的数据库记录。我可以设置第三个提供程序,但显然进入应用程序并在所有检查权限的地方重写不会很有趣,所以我希望有另一种方法。
假设我们有 LDAP 用户使用 LDAP 域登录,例如username@corp.internal,有没有办法根据提供的用户名将驱动从“ldap”更改为“eleoquent”?
【问题讨论】:
标签: php laravel laravel-5 laravel-authentication