【问题标题】:How to Prevent users to see admin views如何阻止用户查看管理员视图
【发布时间】:2018-02-16 22:38:45
【问题描述】:

我目前遇到技术问题。我已经在我的应用程序中配置了 Multi Auth,一切都很好。在我的应用程序中有一些视图,我只允许管理员访问。我通过使用来实现这一目标

@if(Auth::guard('admin')->check())
    // my restricted navigation links / routes.
@endif

但问题是,只要管理员在线,条件就会设置为 true,并且所有具有其他警卫的用户都可以看到链接。请帮助我如何防止其他用户看到这些链接,即使管理员已登录。

【问题讨论】:

标签: php laravel-5 laravel-5.5


【解决方案1】:

由于您的应用是多重身份验证的,我假设您已设置角色(可能还有权限)。

Spatie 的 laravel-permission 包包含一个 Blade 指令 @role('<insert intended role>')@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') });

【讨论】:

  • 我已经用另一种逻辑完成了它......但看起来,这是解决问题的另一种方法,所以,也感谢你的另一个建议。
猜你喜欢
  • 2022-10-18
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
相关资源
最近更新 更多