我是MVC和Laravel 8的新手,我已经通过运行相关的Auth命令添加了用户注册/登录,Laravel相应地添加了用户数据库和注册和登录页面。所有工作都很好。
在此之后,我在迁移中添加了user_type字段和用户和管理员的枚举字段,然后我创建了AdminController及其单独的视图,当我执行/admin操作时,一切都正常。我获得了管理员视图,我还添加了路由并确保了它的安全,以便用户必须先登录才能查看管理员。
我面临的唯一问题是,任何已经登录的用户都可以查看管理员。如何限制使user_type = ' admin‘的用户只能查看管理区域?
现在,我通过在管理布局视图的顶部添加以下代码来进行黑客攻击:
@if (Auth::user()->user_type != "admin")
<script>
window.location = "./";
</script>
@endif
这是有效的,但它是一个黑客,如果任何人禁用了javascript,就可以进入。
附言:我在PHPMyAdmin中手动将用户的管理员字段设置为‘user_type’。
任何帮助都是非常感谢的。
提前谢谢。
发布于 2021-07-08 07:44:38
身份验证和授权有多种可能性。
中间件通行证软件包composer require laravel/passport
composer require spatie/laravel-permission
还有更多,但那在市场上很有名
https://stackoverflow.com/questions/68296323
复制相似问题