我們有時會遇到用戶登陸後存在過期時間,超時用戶需重新登錄,本文主要給大家介紹了關於Laravel 5.4重新登錄實現跳轉到登錄前頁面的原理和方法,希望能幫助到大家。
一、應用程式場景:
使用者登陸後存在過期時間,逾時使用者需重新登入。例:當使用者在/user/2 頁面,登陸過期後跳到登陸頁面,登陸後使用者也應在/user/2而不是home/index。
二、實作原理
在判斷使用者過期後,儲存使用者目前的url位址到session中,下次登陸後跳到此url位址。
三、laravel中的具體實現
路由中間件(判斷登陸狀態) 這裡以cookie是否過期判斷用戶登陸狀態,中間件只判斷登陸相關判斷和執行,不做多餘操作(登入時我使用cookie的值$token作為session的鍵存儲),程式碼如下:
public function handle($request, Closure $next) { //判断cookie是否存在 if ($token = Cookie::get('token')) { //判断session信息,保持状态一致 if ($request->session()->get($token)) { return $next($request); } } //获取当前url,跳转到登陆页 $returnUrl = urlencode($request->getRequestUri()); return redirect('/login?reurl=' . $returnUrl); }
登陸端(處理與頁面互動以及跳轉邏輯)這裡做的是跳到登陸頁,這個可以在中間件實現,只有這一句,with實現的是將reurl閃存,提供前端使用。
return redirect('/')->with('reurl', $returnUrl);
頁端(判斷閃存訊息) 判斷快閃記憶體的信息,這裡分ajax和submit登陸,submit應該很少了,ajax下獲取reurl,然後後端登陸判斷reurl。
@if (session('reurl')) <input> @endif
登陸(登陸邏輯) 省略了判斷使用者帳號密碼,和儲存cookie,session的邏輯,最後前端取得url,location.href = 'url',跳到原url位址。
$reurl = $request->get('reurl'); $url = empty($reurl) ? '/home/index' : $reurl; return response($url);
附註:本文只貼了實作重新登入的相關程式碼,實際程式碼請依照實際業務做對應修改。
相關建議:
以上是Laravel5.4重新登入實作跳到登入前頁面代碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境