簡體   English   中英

在Laravel 5中登錄該頁面后如何在登錄后重定向回上一頁

[英]How to redirect back after logged-in to previous page after logged out on that page in Laravel 5

我正在使用Laravel 5.3 ,這里有一種情況...我在PAGE-2上並從那里注銷,然后重定向到登錄頁面。 現在,我試圖實現的是如果用戶再次登錄,則重定向回PAGE-2。

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

注意:登錄后的默認頁面是“ DashBoard ”。

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

但是現在發生的是,當您進入PAGE-2時,您將注銷,然后您將被重定向到LOGIN-PAGE,如果再次登錄,您將被重定向到“ DashBoard”,這不是我想要的。 它應該重定向回PAGE-2

該流程應為:...用戶登錄后將被重定向,無論他們之前使用哪個PAGE。

這是我正在使用的示例腳本(實際上是來自laravel,我正在使用其內置的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());
    }

有什么想法嗎? 非常感謝您的幫助。

在auth中間件上嘗試此操作:app / http / middleware / RedirectIfAuthenticated

//將用戶重定向到您的登錄頁面“ / login”

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

打開AuthController類:app / Http / Controllers / Auth / AuthController.php

將以下屬性添加到類中

protected $redirectAfterLogout = 'auth/login';

您可以使用任何網址更改身份驗證/登錄。

您可以使用此代碼

       return redirect()->back();

要么

您可以使用路由,在您的路由中,您需要配置並在控制器中,您可以輸入以下代碼//這是您的路由

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

//將其放入您的控制器中return return()-> route('dashboard');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM