我正在使用 Laravel 5.3 ,我有一个情况......我在PAGE-2并从那里注销然后重定向到Login Page。现在,我想要实现的是,如果用户再次登录,则重定向回PAGE-2。
目前的情况是,用户将被重定向到defaultAfterLogin页面,这不是我想要的登录流程。
注意:登录后的默认页面为“ DashBoard ”。
如果您将第一次转到第2页(不是默认的DashBoard页面),如果您没有登录,那么您将被重定向到登录页面然后如果您再次登录,那么被重定向回PAGE-2,这很好。
但现在发生的事情是,当你在PAGE-2然后你注销然后你将被重定向登录页面,如果你再次登录,你将被重定向到“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());
}
请问任何想法?非常感谢你的帮助。
答案 0 :(得分:1)
试试这个 在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);
}
}
答案 1 :(得分:1)
打开AuthController类:app / Http / Controllers / Auth / AuthController.php
将以下属性添加到班级
protected $redirectAfterLogout = 'auth/login';
您可以使用任何网址更改身份验证/登录。
答案 2 :(得分:0)
你可以使用这个代码
return redirect()->back();
或
你可以使用路由和你的路由你需要配置和控制器你可以把下面的代码 //这是你的路线
Route::get('/dashboard',[
'uses' => 'PostController@dashboard',
'as' => 'dashboard',
'middleware' => 'auth'
]);
//把它放在你的控制器里 return redirect() - > route('dashboard');