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);
注:本文只貼出了實現從新登陸的相關代碼,實際代碼請按照實際業務作對應修改。後端