【问题标题】:How to Use two Laravel Default Guard?如何使用两个 Laravel Default Guard?
【发布时间】:2016-07-29 03:51:10
【问题描述】:

我正在尝试使用相同的表单登录管理员和用户,但我只能设置一个默认配置/身份验证

这是我的config/auth

'defaults' => [
    'guard' => 'web_users',
    'passwords' => 'users',
],
'guards' => [
    'web_users' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'web_admins' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],
    'admins' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],

当我使用默认的“web_users”登录用户时,我可以使用 Auth::user() 方法检索他的数据,但如果我使用默认的“web_admins”登录管理员,则无法检索任何内容。

路线:

Route::resource('log','LogController');
Route::get('logout','LogController@logout');

日志控制器

public function store(Request $request)
{

    if(Auth::guard('web_users')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }

    if(Auth::guard('web_admins')->attempt(['email'=>$request['email'],'password'=>$request['password']])) {
        return Redirect::to('/');
    }
}

public function logout()
{
    Auth::logout();
    return Redirect::to('log');
}

注意:对不起,我的英语不太好

【问题讨论】:

标签: php authentication laravel-5.2


【解决方案1】:

试试这个路由文件

Route::group(['middleware' => 'auth:web_users,web_admin'], function () {  
  Route::resource('log','LogController');
  Route::get('logout','LogController@logout');
});  

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 1970-01-01
    • 2016-12-31
    • 2014-01-09
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    相关资源
    最近更新 更多