我目前正处理一个技术问题。我在我的应用程序中配置了Multi Auth,一切都很好。我的应用程序有一些观点,我只能访问管理员。我通过使用
来实现这一目标@if(Auth::guard('admin')->check())
// my restricted navigation links / routes.
@endif
但问题是,无论何时管理员在线,条件设置为true,并且所有具有其他警卫的用户都可以看到链接。请帮助我,即使管理员已登录,如何阻止其他用户看到这些链接。
答案 0 :(得分:1)
由于您的应用是多次授权,我认为您已设置角色(可能还有权限)。
Spatie的laravel-permission软件包包含一个Blade指令@role('<insert intended role>')
&amp; @endrole
。我在自己的应用程序中使用它来阻止普通用户查看用于特定角色的内容。
例如:
@role('admin')
<a href="/admin/users/1/edit">Edit</a>;
@endrole
具有管理员角色的用户可以看到此链接,其他人可以查看。
除此之外,您还可以在此路线上启用中间件:
Route::middleware(['auth', 'role:admin'])->prefix('admin')->group(function (Router $router) { $router->get('/users/{user}', 'AdminUserController@edit') });