gpt4 book ai didi

php - 如何在 Laravel 5 中对多个表使用身份验证

转载 作者:可可西里 更新时间:2023-10-31 22:10:57 25 4
gpt4 key购买 nike

有时,我们希望将用户和管理员分开放在不同的 2 个表中。
我认为这是一个很好的做法。

我正在寻找这在 Laravel 5 中是否可行。

最佳答案

在阅读以下内容之前,您应该对 Laravel 5 中的 ServiceProvider、Facade 和 IoC 有基本的了解。我们开始吧。

根据 Laravel 的文档,您可以发现 Facade 'Auth' 指的是 Illuminate\Auth\AuthManager,它有一个神奇的 __call()。可以看到主要功能不在AuthManager中,而是在Illuminate\Auth\Guard

Guard 有一个 Provider。这个提供者有一个 $model 属性,EloquentUserProvider 会根据这个属性通过 "new $model" 创建这个模型。这些都是我们需要知道的。这是代码。

1.我们需要创建一个AdminAuthServiceProvider

public function register(){
Auth::extend('adminEloquent', function($app){
// you can use Config::get() to retrieve the model class name from config file
$myProvider = new EloquentUserProvider($app['hash'], '\App\AdminModel')
return new Guard($myProvider, $app['session.store']);
})
$app->singleton('auth.driver_admin', function($app){
return Auth::driver('adminEloquent');
});
}

2.外观:

class AdminAuth extends Facade {
protected static function getFacadeAccessor() { return 'auth.driver_admin'; }
}

3。将别名添加到内核:

'aliases' => [
//has to be beneath the 'Auth' alias
'AdminAuth' => '\App\Facades\AdminAuth'
]

希望这对您有所帮助。

关于php - 如何在 Laravel 5 中对多个表使用身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com