php - Laravel 中间件页面权限
问题描述
这个想法是我想使用中间件将它们的角色过滤到我的ektp
路由中。因此只有已登录的用户才能访问该ektp
页面,如果没有,它将被重定向到home
并发出警报“您需要登录”。
网页.php
route::get('/ektp','PagesController@ektp');
我试图添加->middleware(users)
我的登录和注册路线,因此它只会显示在客人身上。Auth guard [users] is not defined.
但是如果我这样做的话,我是如何得到错误的。当我尝试在其中添加时protected $guard ='user';
,ektp model
它仍然显示相同的错误。
//register
route::get('/register','AuthController@getRegister')->middleware('guest');
route::any('/register','AuthController@postRegister')->middleware('guest');
//login
route::get('/login','AuthController@getLogin')->middleware('guest');
route::any('/login','AuthController@postLogin')->middleware('guest');
编辑
验证.php
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('home')->with('warning', 'Need to login');
}
}
}
解决方案
如果您想向那些没有登录 Simple 的用户显示注册页面,请不要使用任何中间件或将该路由放在任何中间件组中
如果您只想向已登录的用户显示 ektp 页面,请这样做
Route::get('/ektp','PagesController@ektp')->middleware(['auth']);
或者
Route::group(['middleware'=>'auth], function(){
Route::get('/ektp','PagesController@ektp');
// Others routes for auth middleware
});
推荐阅读
- quarkus - 复制资源失败:java.nio.file.NoSuchFileException
- excel - VBA:复制公式,而其他工作表中的单元格不为空
- java - 使用并发哈希映射时结果不一致
- javascript - 复选框的标签未按应有的方式显示
- c - 我的 && 函数在程序上没用。有人可以帮助我如何使用它
- c# - 在 Selenium C# 中显示为启用的禁用元素
- ios - 无法更改 iOS 13 中大标题的导航栏色调颜色
- ios - UserInterfaceStyle Light 不适用于发布版本
- pyspark - Pyspark 与 AWS Glue 将 1-N 关系加入 JSON 数组
- amazon-web-services - 将 CSV 文件导入 Amazon Personalize 时出错