В моем routes.php я эти маршруты:Laravel сохранить предыдущий URL и перенаправление после входа
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 roller.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, это может вызвать некоторые проблемы с сессией?
вы хотите перенаправить на предыдущую страницу назад, если auth не удалось? – craig
Как насчет 'return redirect() -> back()'. Есть ли причина, по которой вы не используете это? – devk
Потому что, если я использую его, функцию пост Логин, перенаправить меня обратно на маршрут получить логин и мой промежуточный слой «isAuth» проверить, если пользователь аутентификации, если да, то перенаправить его на главную страницу – Mintendo