【问题标题】:Laravel 5 Middleware not working properlyLaravel 5 中间件无法正常工作
【发布时间】:2017-08-13 10:49:07
【问题描述】:

我在 laravel 5 中定义了一个中间件。但是当我登录时,它会将我重定向到仪表板,但仪表板没有显示并且发生错误。我已经上传了它的图片。 http://imgur.com/a/1fCwt

AdminAuth.php

<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AdminAuth 
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(Auth::check())
        {
            $user = Auth::user();
            return redirect()->route('admin_display_dashboard'); 
        }  else {
            return redirect()->route('admin_display_login');
        }
    }
}   

内核.php

<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    ];
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],
        'api' => [
            'throttle:60,1',
        ],
    ];
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'adminAuth' => \App\Http\Middleware\AdminAuth::class,
    ];
}

Route.php

Route::group(['middleware' => ['adminAuth']], function () {

Route::get('admin/dashboard', array('as'=>'admin_display_dashboard', 'uses'=>'AdminViewController@displayDashboard'));

});

【问题讨论】:

  • 该页面显示您已被重定向太多次。我认为你在那里陷入了无限循环。这些是中间件非常常见的错误。仔细检查您的情况,看看是否有任何变化。

标签: php laravel-5 kernel laravel-5.1 middleware


【解决方案1】:

你的 admin_display_dashboard() 和 admin_display_login() 里面有什么,你确定那里没有重定向等等。

同时试试这个

 if(!Auth::check())
 {

    return redirect()->route('admin_display_login');
 }

 $user = Auth::user();

 return $next($request);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2015-07-05
    • 2015-07-28
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多