2016-09-19 200 views
0

我正在使用Laravel 5.3,我在這裏有一種情況...我在PAGE-2上登出然後從那裏重定向到登錄頁面。現在,我試圖實現的是,如果用戶再次登錄,則重定向到PAGE-2。如何在Laravel 5登錄到該頁面後登錄到上一頁後重定向回到頂端

目前的情況是,用戶將被重定向到defaultAfterLogin頁面,這不是我想要的登錄流程。

注意:登錄後的默認頁面是「DashBoard」。

如果您第一次進入第2頁(不是默認的DashBoard頁面),並且您沒有登錄,您將被重定向到登錄頁面,如果您再次登錄,將被重定向回PAGE-2,這很好。

但現在發生的事情是,當你在PAGE-2然後你註銷,那麼你將被重定向到登錄頁面,如果你再次登錄,你將被重定向到「DashBoard」,這不是我想。它應該重定向回PAGE-2

流程應該是......用戶在登錄後將被重定向,無論他們之前使用的是哪一頁。

這裏是我使用

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()); 
    } 

任何想法(它使用其內置的驗證實際上是從laravel我')的示例腳本,請?非常感謝您的幫助。

+0

您可能會在這裏找到答案http://stackoverflow.com/questions/15389833/laravel-redirect-back-to-original-destination-after-login – Dev

+0

這並不回答我的問題。但我試過它仍然無法正常工作......順便說一下,我正在使用Laravel的登錄身份驗證。 – victor

回答

0

U可以使用此代碼

 return redirect()->back(); 

u可以使用路由和烏爾航線ü需要配置和控制器ü可以把下面的代碼 //這是烏拉圭回合的路線

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

//把這個烏爾控制器 return redirect() - > route('dashboard');

+0

我試過,但不工作...請參閱上面的示例代碼..我已經編輯我的POST – victor

+0

使用路由funciton路由() – rupesh

+0

我想通了,返回重定向() - >後();正在完美工作。非常感謝你分享這個@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

打開AuthController類:應用程序/ HTTP /控制器/認證/ AuthController.php

添加以下屬性添加到該類

protected $redirectAfterLogout = 'auth/login'; 

,您可以更改身份驗證/登錄任意網址。

相關問題