2016-09-19 9 views
0

Я использую Laravel 5.3, у меня есть ситуация здесь ... Я на PAGE-2 и вышла из системы оттуда затем перенаправляется на страницу входа. Теперь я пытаюсь перенаправить обратно на PAGE-2, если пользователь снова войдет в систему.Как перенаправить обратно после входа на предыдущую страницу после выхода на эту страницу в Laravel 5

Текущая ситуация заключается в том, что пользователь будет перенаправлен на страницу defaultAfterLogin, что не является моим желаемым логином входа.

ПРИМЕЧАНИЕ. Страница после после входа - «DashBoard».

Это нормально, если вы впервые отправитесь на СТРАНИЦУ-2 (а не по умолчанию DashBoard), и если вы не являетесь LOGGED-IN, вы будете перенаправлены на страницу LOGIN PAGE, а затем, если вы снова войдете в систему будет перенаправлен обратно на PAGE-2, и это нормально.

НО, что происходит сейчас, когда вы находитесь на СТРАНИЦЕ-2, тогда вы LOGOUT, тогда вы будете СОБИРАТЬСЯ К ВХОДНОЙ СТРАНИЦЕ, если вы снова подключитесь, вы будете перенаправлены на «DashBoard», что не то, что я хотеть. Он должен перенаправить на PAGE-2

Поток должен быть ... пользователи будут перенаправлены после входа в систему независимо от того, с какой страницы они ранее работали.

Вот пример сценария я использую (это на самом деле из Laravel I'am, используя свои встроенные Auth)

protected function handleUserWasAuthenticated(Request $request, $throttles) 
    { 
     if ($throttles) { 
      $this->clearLoginAttempts($request); 
     } 

     if (method_exists($this, 'authenticated')) { 
      return $this->authenticated($request, Auth::guard($this->getGuard())->user()); 
     } 

     return redirect()->intended($this->redirectPath()); 
    } 

Любые идеи, пожалуйста? Большое спасибо за Вашу помощь.

+0

Вы можете найти ответ здесь http://stackoverflow.com/questions/15389833/laravel-redirect-back-to-original-destination-after-login – Dev

+0

Это не отвечает на мой вопрос. Но я пробовал, что он все еще не работает ... кстати, я использую аутентификацию входа в Laravel. – victor

ответ

0

U этот код можно использовать

 return redirect()->back(); 

или

и можно использовать маршрут и в Уре маршрута и нужно настроить и в контроллере и может поставить код ниже // это ур маршрут

Route::get('/dashboard',[ 
'uses' => '[email protected]', 
'as' => 'dashboard', 
'middleware' => 'auth' 
]); 

// помещаем это в Уре контроллер return redirect() -> route ('dashboard');

+0

Я пробовал это, но не работал ... Пожалуйста, см. Пример кода выше .. Я отредактировал мой POST – victor

+0

использовать маршрут funciton route() – rupesh

+0

Я понял, вернусь redirect() -> back(); работает отлично. Большое спасибо за то, что вы поделились этим: @rupesh ;-) – victor

1

Попробуйте На Идент промежуточного слоя: приложение/HTTP/промежуточного/RedirectIfAuthenticated

// перенаправить пользователя на страницу входа в систему "/ Логин"

public function handle($request, Closure $next) 
{ 
    if ($this->auth->check()) { 
    return redirect('/login'); 
    } 

    return $next($request); 
} 

// Это ваш метод Войти

public function postSignIn(Request $request) 
    { 
    $request_data = $request->all(); 
    $email = $request_data['email']; 
    $user_details = User::where('email', $email)->first(); 
    if(count($user_details) > 0) 
    { 
     $credentials = array('email'=> $email ,'password'=> $request_data['password']);   
     if ($this->auth->attempt($credentials, $request->has('remember'))) 
     { 
     return redirect()->to('/dashboard'); //Here is your redirect url, redirect to dashbord 
      OR 
     return redirect()->to('/page2'); //Here is your redirect url, redirect to page2 
     } 
     else 
     { 
     $error = array('password' => 'Please enter a correct password'); 
     return redirect()->back()->withErrors($error); 
     } 
    } 
    else 
    { 
     $error = array('password' => 'User not found'); 
     return redirect()->back()->withErrors($error); 
    } 
    } 
+0

Я пробовал это, но не работал ... Пожалуйста, см. Пример кода выше .. Я редактировал свой POST. – victor

+0

Я использую встроенную регистрационную аутентификацию Laravel ... – victor

+0

Лучший способ создать пользовательский логин, b'coz, вы можете обрабатывать его по-своему и перенаправлять куда угодно. Кроме того, вы можете делать другие вещи после входа в систему, например отправить письмо с подтверждением. – Komal

1

Open AuthController класс: приложение/Http/Контроллеры/Auth/AuthController.php

Добавить ниже собственности к классу

protected $redirectAfterLogout = 'auth/login'; 

вы можете изменить аутентификации/вход с любой URL.

Смежные вопросы