php - Laravel:使用 isAdmin 列检查用户是否是管理员?
问题描述
我对 laravel 真的很陌生,并且一直在阅读文档和教程。我打算制作一个具有 2 个角色的应用程序,管理员和用户。我修改了我的用户模型,使列“isAdmin”具有布尔值,因为我只需要 2 个角色。如何在身份验证期间对此属性进行检查?谢谢你。
解决方案
要回答您的问题,首先要使用 auth 中间件保护任何路由,以确保用户在访问路由之前经过身份验证(登录),您只需添加 auth 中间件。例如
网页.php
<?php
Route::middleware('auth')->group(function(){
//All Routes which needs user to be logged in
});
or
//Individiual Route Middleware
Route::get('/path/to', 'controller@instance')->middleware('auth');
至于检查用户角色,您基本上可以使用以下步骤为此创建一个中间件:
- 运行你的 php artisan make:middleware IsAdminMiddleware
- 打开您的 IsAdminMiddleware 并将此代码添加到句柄函数中:
公共函数句柄($request, Closure $next) { if(!Auth::check()){ 返回重定向()->路由('登录'); } if(Auth::user()->isAdmin == true){ 返回 $next($request); } return redirect()->back()->with('unauthorized', '你是 未经授权访问此页面'); }
推荐阅读
- arduino - Arduino 中断
- node.js - 当我将 Procfile 推送到 master 以部署应用程序时,Dyno 不会出现
- android - 具有多种视图类型的 RecyclerView 和具有边界回调的分页库
- r - 区域统计数据以获取 R 中每个多边形的多数像素值?
- c# - 我在我的 Asp.NET Core 2.2 项目中使用 ReflectionIT.Mvc.Paging 进行分页时遇到问题
- wordpress - 如何通过 ACF 选择标签而不是值进行排序?
- javascript - javascript - `` 在同一行中。其他在表单之外生成的元素
- c# - A* 寻路算法 - 在计算最短路径时卡住了
- php - 如何修复 Session_start 警告?
- time-complexity - 哈希表与二叉搜索树、大 O 访问和搜索