[英]check multiple guard in Laravel controller
I create three types of guards in laravel, I can check auth users but we have some route and controller that is same for all users and I need to check all guards in the same routes or controllers for each type of users that log in. 我在laravel中创建了三种类型的防护,我可以检查auth用户,但是我们有一些对所有用户都相同的路由和控制器,我需要为登录的每种类型的用户检查相同路由或控制器中的所有防护。
my auth.php file looks like this 我的auth.php文件看起来像这样
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'student' => [
'driver' => 'session',
'provider' => 'students',
],
'finance' => [
'driver' => 'session',
'provider' => 'finances',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
'finance-api' => [
'driver' => 'token',
'provider' => 'finances',
],
],
'providers' => [
'students' => [
'driver' => 'eloquent',
'model' => App\student::class,
],
'finances' => [
'driver' => 'eloquent',
'model' => App\Finance::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\users::class,
],
'finance' => [
'driver' => 'eloquent',
'model' => App\users::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
'passwords' => [
'students' => [
'provider' => 'students',
'table' => 'password_resets',
'expire' => 60,
],
'finances' => [
'provider' => 'finances',
'table' => 'password_resets',
'expire' => 60,
],
'admins' => [
'provider' => 'admins',
'table' => 'password_resets',
'expire' => 15,
],
'finance' => [
'provider' => 'finance',
'table' => 'password_resets',
'expire' => 15,
],
],
];
How I can check multiple guards in the same controller or route? 如何在同一个控制器或路由中检查多个警卫?
For each controller that you want to authentication 对于要进行身份验证的每个控制器
public function __construct()
{
$this->middleware('auth:admin,student,finance');
}
OR you can use in the route 或者您可以在路线中使用
Route::group(['middleware' => 'auth:admin,finance,student'], function () {
any same route here
});
And you can access to users details in blade like this 您可以像这样访问刀片中的用户详细信息
{{ Auth::guard('admin')->user()->name }} {{ Auth::guard('admin')->user()->last_name }}
I Hope this helps some one. 我希望这可以帮助别人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.