Laravel 5.4重新登錄實(shí)現(xiàn)跳轉(zhuǎn)到登錄前頁(yè)面的原理和方法
前言
本文主要給大家介紹的是關(guān)于Laravel5.4重新登錄跳轉(zhuǎn)到登錄前頁(yè)面的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō),來(lái)一起看看詳細(xì)的介紹:
一、應(yīng)用場(chǎng)景:
用戶登陸后存在過(guò)期時(shí)間,超時(shí)用戶需重新登錄。例:當(dāng)用戶在/user/2 頁(yè)面,登陸過(guò)期后跳轉(zhuǎn)到登陸頁(yè)面,登陸后用戶還應(yīng)在/user/2而不是home/index。
二、實(shí)現(xiàn)原理
在判斷用戶過(guò)期后,存儲(chǔ)用戶當(dāng)前的url地址到session中,下次登陸后跳轉(zhuǎn)到此url地址。
三、laravel中的具體實(shí)現(xiàn)
路由中間件(判斷登陸狀態(tài)) 這里以cookie是否過(guò)期判斷用戶登陸狀態(tài),中間件只判斷登陸相關(guān)判斷和執(zhí)行,不做多余操作(登錄時(shí)我使用cookie的值$token作為session的鍵存儲(chǔ)),代碼如下:
public function handle($request, Closure $next) { //判斷cookie是否存在 if ($token = Cookie::get('token')) { //判斷session信息,保持狀態(tài)一致 if ($request->session()->get($token)) { return $next($request); } } //獲取當(dāng)前url,跳轉(zhuǎn)到登陸頁(yè) $returnUrl = urlencode($request->getRequestUri()); return redirect('/login?reurl=' . $returnUrl); }
登陸端(處理與頁(yè)面交互以及跳轉(zhuǎn)邏輯)這里做的是跳轉(zhuǎn)到登陸頁(yè),這個(gè)可以在中間件實(shí)現(xiàn),只有這一句,with實(shí)現(xiàn)的是將reurl閃存,提供前端使用。
return redirect('/')->with('reurl', $returnUrl);
頁(yè)面端(判斷閃存信息) 判斷閃存的信息,這里分ajax和submit登陸,submit應(yīng)該很少了,ajax下獲取reurl,然后后端登陸判斷reurl。
@if (session('reurl')) <input type="hidden" name="reurl" value="{{ session('reurl') }}"/> @endif
登陸(登陸邏輯) 省略了判斷用戶賬戶密碼,和存儲(chǔ)cookie,session的邏輯,最后前端獲取url,location.href = 'url'
,跳轉(zhuǎn)到原url地址。
$reurl = $request->get('reurl'); $url = empty($reurl) ? '/home/index' : $reurl; return response($url);
注:本文只貼出了實(shí)現(xiàn)重新登錄的相關(guān)代碼,實(shí)際代碼請(qǐng)按照實(shí)際業(yè)務(wù)做對(duì)應(yīng)修改。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問(wèn)題示例
這篇文章主要介紹了PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問(wèn)題,結(jié)合具體實(shí)例分析了php使用關(guān)聯(lián)數(shù)組解決約瑟夫問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11PHP完全二叉樹(shù)定義與實(shí)現(xiàn)方法示例
這篇文章主要介紹了PHP完全二叉樹(shù)定義與實(shí)現(xiàn)方法,簡(jiǎn)單描述了完全二叉樹(shù)的概念并結(jié)合實(shí)例形式給出了完全二叉樹(shù)的定義、節(jié)點(diǎn)查找、添加、設(shè)置、打印等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10php 無(wú)法加載mysql的module的時(shí)候的配置的解決方案引發(fā)的思考
今天配置php 的時(shí)候,發(fā)現(xiàn)沒(méi)配起mysql ,wordpress提示我需要 mysql 的module之后上google搜索,大多數(shù)都是說(shuō)php.ini 沒(méi)加載起2012-01-01php代碼架構(gòu)的八點(diǎn)注意事項(xiàng)
這篇文章主要介紹了php代碼架構(gòu)的八點(diǎn)注意事項(xiàng),較為全面的分析總結(jié)了基于面向?qū)ο蟪绦蛟O(shè)計(jì)的代碼架構(gòu)設(shè)計(jì)問(wèn)題相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-01-01php實(shí)現(xiàn)的遍歷文件夾下所有文件,編輯刪除
遍歷文件夾; 功能:(a)可刪除文件 (b)可編輯文本,網(wǎng)頁(yè)文件 (c)可刪除文件夾,前提是該文件夾為空 (d)可建立文件,文件夾,修改文件夾名稱2010-01-01PHP實(shí)現(xiàn)根據(jù)瀏覽器跳轉(zhuǎn)不同語(yǔ)言頁(yè)面代碼
以下是對(duì)使用PHP實(shí)現(xiàn)根據(jù)瀏覽器跳轉(zhuǎn)不同語(yǔ)言頁(yè)面的代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08