2017-01-11 17 views
2

後にリダイレクト私はこれらのルートを持っている:Laravel以前のURLを保存して、私のroutes.phpでログイン

Route::group(["middleware" => "isValidAddress"], function() { 
Route::group(["middleware" => "isNotAuth"], function() { 

    // Password 
    Route::group(["prefix" => "password"], function() { 
     Route::get("/", "[email protected]"); 

     // Gestione Password 
     Route::match(["GET", "POST"], "password", "[email protected]"); 
     // Nuovo 
     Route::get("password/nuovo", "[email protected]"); 
     Route::post("password/nuovo", "[email protected]"); 
     // Modifica 
     Route::get("password/modifica/{idPWD}", ["as" => "getPassword", "uses" => "[email protected]"]); 
     Route::post("password/modifica/{idPWD}", "[email protected]"); 
     // Elimina 
     Route::post("password/elimina", "[email protected]"); 

     // Importazione password da Vtiger 
     Route::match(["GET", "POST"], "importazione", "[email protected]"); 

     // Genera una password random 
     Route::post("genera", "[email protected]"); 
     // Visualizza la password decriptata 
     Route::post("visualizza", "[email protected]"); 
    }); 

ミドルウェア「isValidAddress」クライアントのIPがアクセスを認可されている場合ミドルウェアリダイレクトisNotAuthながら、確認してくださいユーザー彼が認証されていない場合:

class isNotAuth { 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) { 
     // Se non è loggato lo reinderizzo alla pagina di login 
     if (!$request->session()->get("operatore")) { 
      // Mi salvo in sessione la pagina in cui si stava tentando di accedere prima di effettuare la login 
      $request->session()->put("URL_PWD", $request->getUri()); 
      return redirect("login"); 
     } 

     return $next($request); 
    } 

} 

また、セッション中にユーザーが前回訪問したいとページを保存し、ログインした後、私はそのページに彼をリダイレクト:

LoginContローラー.php

// Se si stava tentando di accedere ad una pagina prima di effettuare la login, reinderizzo l'utente ad essa 
    if ($request->session()->has("URL_PWD")) { 
     return redirect($request->session()->pull("URL_PWD")); 
    } 

ローカルでは、このコードは正しく動作しますが、私のLinuxサーバーホストでは動作しません。

ログイン路線:

// Login 
Route::group(["middleware" => "isAuth"], function() { 
    Route::get("login", "[email protected]"); 
    Route::post("login", "[email protected]"); 
}); 

私のサイトがHTTPSであるが、これはセッションでいくつかの問題を引き起こす可能性が?

+0

あなたが戻っている場合、前のページにリダイレクトしたいです認証が失敗しましたか? – craig

+0

'return redirect() - > back()'はどうでしょうか?あなたがこれを使用していない理由はありますか? – devk

+0

私はそれを使用すると、ログイン後の機能、私は戻って取得ログインルートにリダイレクトするため、私のミドルウェア "isAuth"は、ユーザーが認証されている場合、メインページにリダイレクトを確認します – Mintendo

答えて

1

back()機能を使用してください。 documentationから:

時々、あなたは、このような提出フォームが無効であるときのように、その前の の場所にユーザーをリダイレクトすることを望むかもしれません。グローバルbackヘルパー機能を使用して で行うことができます。この機能は セッションを利用しているため、バック関数を呼び出すルートは ウェブミドルウェア・グループを使用しているか、セッションミドルウェアのすべてが適用されたことを確認してください:

Route::post('user/profile', function() { 
    // Validate the request... 

    return back()->withInput(); 
}); 
+0

私は、ミドルウェアisAuthがユーザを認証しているかどうかを確認するログインルートに戻り、そうであれば、私は彼をメインページにリダイレクトする:ルート::グループ(["ミドルウェア" => "isAuth"]、function(){ Route :: post( "login"、 "LoginController @ postLogin"); }); ' – Mintendo

関連する問題