2016-03-26 10 views
1

Ich habe Probleme mit der Umleitung auf eine URL nach der Anmeldung. Die Situation ist, dass jemand einen Blogpost besucht und sich vor dem Hinzufügen eines Kommentars anmelden muss. Der Benutzer klickt also auf den Login-Link und meldet sich "auth/login" an und wird immer auf "/ home" umgeleitet.Laravel Umleitung auf URL nach dem Login

Ich möchte der Benutzer auf die Blogpost umgeleitet werden, wenn eine URL festgelegt ist, wie "Auth/login redirect = url/to/Blogpost?"

Ich habe folgende Middleware:

app \ http \ Middleware \ RedirectIfAuthenticated

<?php 

namespace App\Http\Middleware; 

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

class RedirectIfAuthenticated 
{ 
    /** 
    * The Guard implementation. 
    * 
    * @var Guard 
    */ 
    protected $auth; 

    /** 
    * Create a new filter instance. 
    * 
    * @param Guard $auth 
    * @return void 
    */ 
    public function __construct(Guard $auth) 
    { 
     $this->auth = $auth; 
    } 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if ($this->auth->check()) { 
      return redirect('/home'); 
     } 

     return $next($request); 
    } 
} 

app \ http \ Middleware \ Authentifizieren

<?php 

namespace App\Http\Middleware; 

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

class Authenticate 
{ 
    /** 
    * The Guard implementation. 
    * 
    * @var Guard 
    */ 
    protected $auth; 

    /** 
    * Create a new filter instance. 
    * 
    * @param Guard $auth 
    * @return void 
    */ 
    public function __construct(Guard $auth) 
    { 
     $this->auth = $auth; 
    } 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if ($this->auth->guest()) { 
      if ($request->ajax()) { 
       return response('Unauthorized.', 401); 
      } else { 
       return redirect()->guest('auth/login'); 
      } 
     } 

     return $next($request); 
    } 
} 
+1

http://stackoverflow.com/questions/15389833/laravel-redirect-back-to-original-destination-after-login – xdevnull

Antwort

0

Ich habe beschlossen, die getlogin Funktion der Eigenschaft AuthenticatesUsers in meine AuthController kopieren und einfügen. Ich überschreibe die Funktion UND behalte das Merkmal wie es ist.

Ich habe gerade

hinzugefügt

\Session::put('url.intended',\URL::previous());

0

Wenn Sie von Laravel 5 Standard-Authentifizierung verwenden, eine app/Http/Controllers/Auth/AuthController.php Datei finden und $redirectPath Um dies ändern:

protected $redirectPath = '/url/to/blogpost'; 
1

Warum Sie nicht über die beabsichtigte Methode auf Redirector verwenden? Lesen über dieses in docs

Die beabsichtigte Methode auf dem Redirector wird der Benutzer auf die umzuleiten, um sie den Zugriff versucht wurden, bevor sie von dem Authentifizierungs-Filter aufgefangen wird. Eine Fallback-URI kann dieser Methode für den Fall bereitgestellt werden, dass das beabsichtigte Ziel nicht verfügbar ist.