登录、登出后重定向到来源页面
目标:
A页(未登录)->登录页->登录->A页(已登录)
B页(已登录)->登出->B页(未登录)
代码:
app/Http/Controllers/Auth/LoginController.php
...
use URL;
class LoginController extends Controller
{
use AuthenticatesUsers {
showLoginForm as laravelShowLoginForm;
logout as laravelLogout;
}
protected $redirectToSessionKey = 'redirect_to';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function showLoginForm(Request $request)
{
$request->session()->put($this->redirectToSessionKey, URL::previous());
return $this->laravelShowLoginForm();
}
public function redirectTo()
{
$request = app(Request::class);
$redirectTo = $request->session()->get($this->redirectToSessionKey);
$request->session()->forget($this->redirectToSessionKey);
return $redirectTo;
}
public function logout(Request $request)
{
$this->laravelLogout($request);
return redirect(URL::previous());
}
}
本帖已被设为精华帖!
本帖由系统于 5年前 自动加精
关键词
URL::previous()
再加一句代码改进一下。
A页(未登录)->登录页->登录->登陆失败(账密错误)->登录->登陆失败->...->登陆成功->A页(已登录)
原:
新:
更规范的 key 应该可以用这个。
退出尽量不要回跳,因为如果从用户中心注销,再回跳,又会跳到登录页。一般正常跳到首页就行了。
@DavidNineRoc 主题配色好舒服,什么主题和配色啊 :smile:
@sayhe110 https://github.com/DavidNineRoc/david-nine... 配置文件