Laravel 5.2 - Utilisation Auth::check() ne fonctionne pas dans le MIddleware

Je suis en train de faire un middleware pour différents types d'utilisateurs dans mon Laravel 5.2 application.
Alors, qu'est-ce que je suis en train de faire est de faire des différents middlewares pour les différents utilisateurs.

Autant que je suis sachant Auth::check() ne fonctionnera pas sans la rêverie middleware web de ici.

Donc, ce que j'ai fait est-

routes.php

Route::group(['middleware' => ['web','admin']], function ()
{
    //suspend, activate, delete
    Route::get('users', [
        'uses'          => 'AdminController@users',
        'as'            => 'users'
    ]);

    //Edit,activate,suspend, delete
    Route::get('articles', [
        'uses'          => 'AdminController@articles',
        'as'            => 'articles'
    ]);
});

AdminMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class AdminMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check())
        {
            return "asd";
            //return Auth::user();
            //return redirect('home');
        }
        else
        {
            return redirect('login');
        }

        //now return the valid request
        return $next($request);
    }
}

Kernel.php

protected $routeMiddleware = [
    'auth'          => \App\Http\Middleware\Authenticate::class,
    'admin'         => \App\Http\Middleware\AdminMiddleware::class,
    'user'          => \App\Http\Middleware\UserMiddleware::class,
    'auth.basic'    => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest'         => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'throttle'      => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];

AdminController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{
    public function users()
    {
        return view('admin.users');
    }

    public function articles()
    {
        return view('admin.articles');
    }
}

Mais j'obtiens cette erreur-

Laravel 5.2 - Utilisation Auth::check() ne fonctionne pas dans le MIddleware

lorsque "retour Auth::user();" appelée à l'intérieur d'un middleware, "retour Auth::user();" est de travailler dans un autre endroit (de vue et de contrôleurs), mais ne fonctionne pas comme les anciennes versions de Laravel.

Quelqu'un peut s'il vous plaît aider?

  • pourquoi essayez-vous de retourner le modèle de l'utilisateur à partir d'un middleware ?
  • En fait, je veux savoir le type d'utilisateur dans mon middleware afin que je puisse décider quoi que ce soit à faire avec ça, alors que pour le test je suis en train de tout reprendre.
  • juste dd ce que vous voulez vérifier, ne pas les retourner. Qu'essayez-vous de vérifier l '"utilisateur" modèle ?
  • user_type utilisateur modèle
  • En fait le problème n'est pas ce que je suis de retour, problème est que je ne suis pas autorisé à le faire Auth::check()
  • vous pouvez et de de ses se fait dans d'autres middlewares
  • Commentaire VerifyCsrfToken ligne Kernel.php et vérifier.

InformationsquelleAutor Abrar Jahin | 2016-01-04