【发布时间】:2018-04-12 19:24:44
【问题描述】:
我有访客和经过身份验证的用户可以访问的路由,但问题是如何在单击注销按钮后将登录的用户返回到同一页面而不是主页?
【问题讨论】:
-
到目前为止你尝试了什么?
-
我正在寻找一个内置功能来处理这个问题。
标签: php laravel authentication
我有访客和经过身份验证的用户可以访问的路由,但问题是如何在单击注销按钮后将登录的用户返回到同一页面而不是主页?
【问题讨论】:
标签: php laravel authentication
如@onix 所说,要摆脱这个问题。只需添加一个隐藏的输入并检查它是否在注销方法中退出。
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
if($request->has('go_back')) {
return redirect()->back();
}
return redirect('/');
}
<form action="{{ route('signout') }}" method="POST">
{{ csrf_field() }}
@if(\Route::current()->getName() == 'freedom'))
<input type="hidden" name="go_back">
@endif
<button type="submit">Logout</button>
</form>
【讨论】:
*假设您使用身份验证。
转至:your_project\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ AuthenticatesUsers.php
找到logout函数,把返回改成back();
但您认为这是不好的做法,因为您可能会将用户返回到未经授权的页面,他会收到错误异常。
【讨论】: