首页 > 解决方案 > 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');
        }


    }
}

标签: phplaravellaravel-5laravel-middleware

解决方案


如果您想向那些没有登录 Simple 的用户显示注册页面,请不要使用任何中间件或将该路由放在任何中间件组中

如果您只想向已登录的用户显示 ektp 页面,请这样做

Route::get('/ektp','PagesController@ektp')->middleware(['auth']);

或者

Route::group(['middleware'=>'auth], function(){
  Route::get('/ektp','PagesController@ektp');
  // Others routes for auth middleware
});

推荐阅读