1.应用场景:
用户登录后一段时间须要从新登陆,且登录后返回以前浏览的页面,而不是系统首页。例如:当用户在/article/2 页面,登录过时后跳转到登录页面,登录后用户还应在/user/2而不是home/index。前端
2.实现原理
经过判断cookie过时时间决定用户是否须要从新登录,需从新登录前,存储用户当前的url地址到session中,下次登录后跳转到此url地址。laravel
3.laravel中的具体实现ajax
public function handle($request, Closure $next) { //判断cookie是否存在 if ($token = Cookie::get('token')) { //判断session信息,保持状态一致 if ($request->session()->get($token)) { return $next($request); } } //获取当前url,跳转到登录页 //这里也能够不用session,直接写到url地址里,须要url_encode() return redirect('/admin')->with('reurl', $request->getRequestUri());
@if (session('reurl')) <input type="hidden" name="reurl" value="{{ session('reurl') }}"/> @endif
$reurl = $request->get('reurl'); $url = empty($reurl) ? '/home/index' : $reurl; return response($url);
注:本文只贴出了实现从新登陆的相关代码,实际代码请按照实际业务作对应修改。后端