2017-05-17 2 views
0

Ich habe Multi-Auth in meinem Projekt laravel 5.4 implementiert, aber immer wenn ich versuche, mich von einem anderen Gerät anzumelden, erhalte ich diesen Fehler.Laravel | Fehler: Header darf nicht mehr als einen einzigen Header enthalten

Error in Response.php Linie 386: Header darf nicht mehr enthält als ein einzelner Header, neue Zeilen erkannt

Jetzt habe ich versucht, einen Blick in andere similiar Fragen auf dieser Website, aber keiner von ihnen Passen Sie an, was ich im Login-Controller mache.

Hier ist meine Login-Controller:

class LoginController extends Controller 
{ 


    use AuthenticatesUsers; 

    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'logout']); 
    } 

    public function username() 
    { 
     return 'mobile_no'; 
    } 

    protected function redirectTo() 
    { 
     $notification = array(
      'message' => 'Welcome Admin!', 
      'alert_type' => 'info', 
      'title' => Auth::user()->name 
     ); 
     return redirect('/home')->with('notification', $notification); 
    } 
} 

Was ist falsch mit meiner redirecTo() Funktion?

Antwort

1

Diese Frage wurde bereits beantwortet here. Grundsätzlich sollte die Methode eine Zeichenfolge und keine Redirect-Antwort zurückgeben. Hier ist ein Beispiel:

namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 
use Illuminate\Support\Facades\Auth; 

class LoginController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles authenticating users for the application and 
    | redirecting them to your home screen. The controller uses a trait 
    | to conveniently provide its functionality to your applications. 
    | 
    */ 

    use AuthenticatesUsers; 

    /** 
     * Where to redirect users after login. 
     * 
     * @var string 
     */ 
    //protected $redirectTo = '/'; 

    /** 
     * Create a new controller instance. 
     * 
     * @return void 
     */ 
    public function __construct() 
    { 
      $this->middleware('guest')->except('logout'); 
    } 

    public function redirectTo(){ 
      return '/admin'; 
    } 


} 

sondern weil Sie tatsächlich benötigen, um einen Blick und umfassen einige Daten umzuleiten, die Arbeit für Sie gewohnt. Was Sie brauchen, ist die Redirect-Funktionalität alle zusammen zu überschreiben und nur Ihre eigenen zu erstellen. Hier ist, was Sie tun müssen. Sie können einfach die ganze Klasse von hier kopieren und es sollte funktionieren out of the box :). Hier ist der Code. Prost.

namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesUsers; 
use Illuminate\Support\Facades\Auth; 

class LoginController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles authenticating users for the application and 
    | redirecting them to your home screen. The controller uses a trait 
    | to conveniently provide its functionality to your applications. 
    | 
    */ 

    use AuthenticatesUsers; 

    /** 
     * Where to redirect users after login. 
     * 
     * @var string 
     */ 
    //protected $redirectTo = '/'; 

    /** 
     * Create a new controller instance. 
     * 
     * @return void 
     */ 
    public function __construct() 
    { 
      //this should not be included 
      //$this->middleware('guest')->except('logout'); 
    } 

    //public function redirectTo(){ 
    //  return '/admin'; 
    //} 
    protected function authenticated() 
{ 
     $notification = array(
      'message' => 'Welcome Admin!', 
      'alert_type' => 'info', 
      'title' => Auth::user()->name 
    ); 
     return redirect('/home')->with('notification', $notification); 
} 

} 
+1

Können Sie bitte klären, warum ich '$ this-> middleware (' guest ') -> außer (' abmelden '); '? Ohne es ist der angemeldete Benutzer in der Lage, die Login-Seite zu besuchen, was nicht das gewünschte Verhalten sein sollte, oder? –

+1

Versuchen Sie es zu aktivieren. Es ist kein Muss. Es sollte deaktiviert werden, da dieser Code ebenfalls umgeleitet wird und Sie dieses Verhalten überschreiben möchten. Sie können diese Middleware auch immer nur bearbeiten, um sicherzustellen, dass sie richtig umgeleitet wird, basierend auf der Bedingung und nicht nur auf '/ home' –

Verwandte Themen