jeudi 7 septembre 2017

Redirect to Dashboard page by IP Address with Auth

I want to auto redirect to dashboard page by pass login page if client ip address are match ip address 192.168.1.154. But in my Dashboard page i already put session by Auth

My Middleware in kernel:

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,           
        'ipcheck' => \App\Http\Middleware\IpMiddleware::class,
    ];

My IpMiddleware code:

<?php

namespace App\Http\Middleware;

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

class IpMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // $ip = \Request::ip();
        if ($request->ip() == "192.168.1.154") {               
            return redirect('homne');
        }
        return $next($request);
    }
}

My Route login:

Route::get('/', ['middleware' => ['ipcheck'], function () {
    return view('auth.login');
}]);

My Route home:

Route::get('home', function () {

    if (Auth::guest()) {
        return back()->withInput();
    } else (Auth::user()->role_id == 1) {

        return view('dashboard');
    } 

});

i got an error :

This webpage has a redirect loop

ERR_TOO_MANY_REDIRECTS

What can i do now?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire