2016-12-30 20 views
2

Laravel 5.3認証に問題があります。ログイン後にユーザーをリダイレクトしたい私が知っているのと同じルートにすべてのユーザーをリダイレクトしたい場合は、属性を変更できますが、そのタイプに基づいてユーザーをリダイレクトしたいので、カスタムロジックが必要です。それは私が作ってくれるドキュメントです。Laravel 5.3認証後のリダイレクト

protected function redirectTo(){ 
    //my logic goes here 
} 

しかし、私の機能は無視され続けています。ドキュメントでは、私の関数は$redirectTo属性をオーバーライドする必要がありますが、削除してもデフォルトルート( "/home")になります。属性値を変更すると、正しいパスにリダイレクトされますが、私の関数はまだ無視されます。

https://laravel.com/docs/5.3/authentication#included-authenticating

マイログインコントローラは、次のようになります。

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

class LoginController extends Controller 
{ 

    use AuthenticatesUsers; 

    //protected $redirectTo = '/'; 
    protected function redirectTo() 
    { 
     return redirect('admin/home'); 
    } 

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

} 

EDITを:私は私の機能の代わりにredirectTo()authenticated()に名前を付ける場合は、計画通りに動作します。

protected function redirectTo() 
{ 
     return redirect('admin/home'); 
} 
+0

あなたは '$ redirectTo'変数をどこで上書きしていますか?あなたのコードのどこにでも '$ this-> redirectTo'に割り当てられた値がありません – Dragos

+0

リダイレクトオブジェクトの代わりに文字列を返そうとしましたか? – yivi

+0

@yivi私は、私は "admin/home"を返そうとしました – Grof

答えて

1

LaravelはRedirectUsers::redirectPath()を使用してリダイレクトパスを取得します。

プロパティredirectToのみをチェックします。

カスタムロジックを適用する場合は、コントローラーにredirectPath()メソッドを上書きするだけです。

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

class LoginController extends Controller 
{ 

    use AuthenticatesUsers; 

    //protected $redirectTo = '/'; 
    public function redirectPath() 
    { 
     // ... 
     // custom logic here 
     // ... 

     return '/my/custom/url/here'; 
    } 

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

} 

同じアプローチがRegisterControllerResetPasswordControllerのために動作します。

+0

ありがとうございました。 – Grof

関連する問題