如何在laravel中为auth控制器设置新的防护

Mat*_*tej 2 php laravel laravel-5

我想在我的laravel项目中进行多重身份验证.

我在我的auth.php文件中创建了新的后卫"admin",但我不知道如何在我的authcontroller中设置新创建的后卫.

它始终使用我的auth.php中的"默认值"设置:

'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],
Run Code Online (Sandbox Code Playgroud)

Gau*_*rav 10

1)如果您希望在admin整个应用程序中使用新创建的防护,您可以更改配置文件的默认值.


2)如果只是在AuthController中使用Laravel的内置Auth系统,你可以在AuthController.phpPasswordController.php中添加这一行:

protected $guard = 'admin';
Run Code Online (Sandbox Code Playgroud)

参考 - 在此检查Guard Customization


3)如果您希望任何Auth相关任务的默认保护,您可以手动指定它,如下所示:

// For route middleware
Route::get('profile', [
    'middleware' => 'auth:admin',
    'uses' => 'ProfileController@show'
]);

// For manually logging the user in
if (Auth::guard('admin')->attempt($credentials)) {
    // Authenticated...
}

// To login specific user using eloquent model
Auth::guard('admin')->login($user);

// For getting logged in user
Auth::guard('admin')->user();

// To check if user is logged in
if (Auth::guard('admin')->check()) {
    // Logged in
}
Run Code Online (Sandbox Code Playgroud)

参考 - https://laravel.com/docs/5.2/authentication