[英]Laravel 9 - How to prevent showing login page after user is logged-in and hit browser back button
[英]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.