Php 在创建多重身份验证(admins+;boss)时如何使用Blade指令?
我回顾了关于multiauth(不使用is_admin)的所有教程,其中包含不同授权级别的不同表。我有两个授权实体:boss和admin(Manager和admin) 但是,与所有这些教程不同:Php 在创建多重身份验证(admins+;boss)时如何使用Blade指令?,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,我回顾了关于multiauth(不使用is_admin)的所有教程,其中包含不同授权级别的不同表。我有两个授权实体:boss和admin(Manager和admin) 但是,与所有这些教程不同: 我没有单独的授权页面。授权窗口位于主页面上,当您单击授权图标时出现(使用JS,仅显示:block) 所有这些教程都有针对不同角色的单独授权页面(分别针对经理和管理员)。我有一个授权窗口,所以我需要在一个窗口上对用户进行身份验证(同时针对两个角色:管理员和经理) 在任何教程中都没有使用blade指令(我已
- -->我使用此方法进行了自己的身份验证
id type name email ...
1 admin Plamen Penchev
2 boss Ivan Ivanov
Route::group(['prefix' => 'admin, 'middleware' => 'check.admin'], function() {
Route::get('/', 'AdminController@index)->name('admin.index');
})
用户成功登录后,您将使用此用户类型加载不同的内容,具体取决于用户角色
让我们从我的一个项目中寻找一个例子
@if (Auth::user())
<ul class="login-register profile-details">
<li>
<a href="{{route('user.profile')}}">
<img src="{{asset(Auth::user()->image)}}" />{{Auth::user()->name}}
</a>
</li>
<li class="user_points">
<p>{{Auth::user()->points}} Points</p>
</li>
@if (Auth::user()->type === 'admin)
<li> <a href="#">ADmin Panel</a></li>
@endif // you can check the same way for boss
</ul>
@else
<ul class="login-register">
<li><a class="popup-text" href="{{route('auth.login')}}" data-effect="mfp-move-from-top"><i class="fa fa-sign-in"></i>Sign in</a>
</li>
<li><a class="popup-text" href="{{route('auth.register')}}" data-effect="mfp-move-from-top"><i class="fa fa-edit"></i>Sign up</a>
</li>
</ul>
@endif
步骤2:在中间件中键入如下代码
php artisan make:middleware CheckAdmin
public function handle($request, Closure $next)
{
if (Auth::user() && Auth::user()->type === 'admin') {
return $next($request);
}
return redirect('/');
}
'check.admin' => \App\Http\Middleware\CheckAdmin::class,
步骤3注册中间件
打开app/Kernel.php
并找到受保护的$routeMiddleware
数组
并声明您的中间件
php artisan make:middleware CheckAdmin
public function handle($request, Closure $next)
{
if (Auth::user() && Auth::user()->type === 'admin') {
return $next($request);
}
return redirect('/');
}
'check.admin' => \App\Http\Middleware\CheckAdmin::class,
现在,您可以像这样将中间件连接到路由
id type name email ...
1 admin Plamen Penchev
2 boss Ivan Ivanov
Route::group(['prefix' => 'admin, 'middleware' => 'check.admin'], function() {
Route::get('/', 'AdminController@index)->name('admin.index');
})
您可以为每个用户角色创建不同的中间件
关于身份验证
您只需要一个登录表单,使用请求助手验证它,然后将用户登录到其帐户,并根据用户角色限制页面、内容和所有内容
此外,您还可以阅读更多有关刀片指令的信息。LAravel文档非常清晰易懂感谢您的经验和示例。这对我来说是一个很好的飞跃。至于文档,是的,它写得很好,但它不能解决我的问题。我每天都读它,学到一些新的东西,但我不会继续--->我在网站中的所有表格不幸的是,我没有角色。我有完全不同的表格(主管(这是老板)和管理员)。你能告诉我在这种情况下该怎么办吗?假设我是主管,只想看到我手下的项目,对吗?有点错误,这里有一个单独的页面显示这个(主管的项目)。然而,我有一个主页,我需要连接三个角色。管理员显示自己的徽标,主管显示自己的徽标。主管有权补充说项目管理员没有这种能力。我可以用Figma(可以在Photoshop中翻译)。至少粗略估计一下我如何做到这一点。当然,我可以付你一点咨询费,但我是一个来自俄罗斯的穷学生,所以说实话,我口袋里的钱不超过10美元。如果你有skype,加上我,用同一张照片搜索我的名字,我们可以讨论,但目前我在工作,2小时后可以聊天