2017-09-08 1 views
0

Ich möchte automatisch Dashboard-Seite für Seite Login-Seite umleiten, wenn Client-IP-Adresse übereinstimmen IP-Adresse 192.168.1.154. Aber in meinem Dashboard-Seite i bereits gesetzt Sitzung von AuthUmleiten zur Dashboard-Seite nach IP-Adresse mit Auth

Mein Middleware im 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, 
    ]; 

Mein 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('home'); 
     } 
     return $next($request); 
    } 
} 

Meine Strecke Login:

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

Meine Heimweg:

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

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

     return view('dashboard'); 
    } 

}); 

Ich habe einen Fehler:

This webpage has a redirect loop 

ERR_TOO_MANY_REDIRECTS 

Was kann ich jetzt tun?

+0

wie Middleware-Ausgabe Sieht denke ich –

+0

Blick auf diese Frage könnte help you https://stackoverflow.com/questions/30125235/laravel-5-redirect-loop-error –

+0

@SagarGautam Wie können wir Return-Umleitung verwenden ('/ home') -> mit (Auth :: user() - > role_id = 1); –

Antwort

2

Sie müssen Auto-Login/session in Sie middleware nicht in dashboard

Let machen sagen, wenn Sie die automatische Anmeldung für id wollen 1 dann sollte es so

public function handle($request, Closure $next) 
{ 
// $ip = \Request::ip(); 
    if ($request->ip() == "192.168.1.154") {    
     $user_id = 1;// 
     Auth::loginUsingId($user_id); 
     return redirect('home'); 
    } 
    return $next($request); 
} 

In Ihrem home Route Ihre Anreise Auth, die für Gast nicht für eingeloggten Benutzer zutreffend ist, so dass es wieder zu auth.login umleitet, weil auth.login Middleware zu home umleiten dann home überprüfen Sie für guest oder Auth ..... und seine make cicle und man bekam Fehler

Diese Webseite weist eine Weiterleitung

ERR_TOO_MANY_REDIRECTS

Verwandte Themen