Use and redirect with laravel 5.6 middleware

1

Good morning, I have been using laravel 5.6 and I have just applied several middleware to my project in order to protect the routes, in the access to the different user roles, but when making the login it keeps redirecting me to 'home'.

That's how I have the declared middleware

protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'admin'=> \App\Http\Middleware\admin::class,
'almacen'=> \App\Http\Middleware\almacen::class,
'boletas'=> \App\Http\Middleware\boletas::class,
];

Where each middleware file places a switch, leaving it like this:

<?php

namespace App\Http\Middleware;

use Illuminate\Contracts\Auth\Guard;
use Closure;
use Session;


class almacen
{
/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Closure  $next
* @return mixed
*/
protected $auth;
public function __construct(Guard $auth)
{
 $this->auth=$auth;
}
public function handle($request, Closure $next)
{
switch ($this->auth->user()->id_role)
{
    case '1':
        return redirect()->to('admin');
        break;
    case '2':
        //return redirect()->to('almacen');
        break;
    case '3':
        return redirect()->to('boletas');
        break;

} 
return $next($request);
}

Also modify the file RedirectIfAuthenticated.php, leaving it like this:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Closure  $next
* @param  string|null  $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null) 
{
if (Auth::guard($guard)->check()) {
    switch ($this->auth->user()->id_role)
    {
        case '1':
            return redirect()->to('admin');
            break;
        case '2':
            return redirect()->to('almacen');
            break;
        case '3':
            return redirect()->to('boletas');
            break;
        default:
            return redirect()->to('login');
            break;
    }
    return redirect('/');
}
return $next($request); 

}
}

If someone could please tell me what I'm failing or where else I should modify the redirect after login

    
asked by ALVARO ROBERTO BACARREZA ARZAB 17.05.2018 в 15:53
source

0 answers