第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JWT 成功認(rèn)證后如何觸發(fā)事件

使用 JWT 成功認(rèn)證后如何觸發(fā)事件

PHP
慕田峪9158850 2022-07-09 18:17:38
我有一個 Laravel 版本 6 應(yīng)用程序。我使用JWT 包進(jìn)行身份驗證。路由定義如下:// route/api.phpRoute::middleware('auth:api')->group(function () {     Route::apiResources([        'genders' => 'API\GenderController'    ]);});在控制器內(nèi)部,我有 5 個功能index、store、和。showupdatedestroy在這些函數(shù)中運行任何代碼之前,我需要為當(dāng)前用戶設(shè)置語言環(huán)境,如下所示:public function index(){     $locale = request()->user()->lang;         app()->setLocale($locale);     // Rest of the function}我的控制器類擴展了一個BaseController類。由于 Restful API 是無狀態(tài)的,我需要在每次用戶發(fā)送 API 請求時設(shè)置語言環(huán)境?,F(xiàn)在的問題是,最好的地方在哪里,我該怎么做?我試圖在 BaseController 的構(gòu)造函數(shù)中執(zhí)行此操作,但似乎middleware('auth:api')尚未檢查構(gòu)造函數(shù)中的令牌。另一個選項是在身份驗證事件處理程序中設(shè)置語言環(huán)境。我在這里找到了 JWT 包事件列表:// fired when the token could not be found in the requestEvent::listen('tymon.jwt.absent');// fired when the token has expiredEvent::listen('tymon.jwt.expired');// fired when the token is found to be invalidEvent::listen('tymon.jwt.invalid');// fired if the user could not be found (shouldn't really happen)Event::listen('tymon.jwt.user_not_found');// fired when the token is valid (User is passed along with event)Event::listen('tymon.jwt.valid');如果有人可以幫助我為我定義一個處理程序,tymon.jwt.valid我將不勝感激。或者即使您有其他解決方案可以在執(zhí)行index、store、show和函數(shù)update之前運行事件。destroy
查看完整描述

2 回答

?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊

我可以找到一種不同的方式來訪問構(gòu)造函數(shù)類中的當(dāng)前用戶。雖然request()->user()代碼在構(gòu)造函數(shù)中返回 null,auth()->user()但即使在構(gòu)造函數(shù)中也返回當(dāng)前用戶。


abstract class BaseController extends Controller

{

    public function __construct() 

    {

        $locale = auth()->user()->lang;

        app()->setLocale($locale);

    }

}

因此,我可以在BaseController課堂上設(shè)置語言環(huán)境。


但是,我關(guān)于使用 JWT 事件的問題是開放的。另外,我想了解更多有關(guān)使用中間件的詳細(xì)信息,正如@patryk-karczmarczyk 在他的回答中所建議的那樣。


查看完整回答
反對 回復(fù) 2022-07-09
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗 獲得超3個贊

您可以在中間件中輕松完成。只需將驗證用戶身份的中間件放在設(shè)置位置的中間件之前。


創(chuàng)建您的路線類并在其中注冊App\Http\Kernel::$routeMiddleware


然后像這樣使用它:


// rouite/api.php


Route::group(['middleware' => ['auth:api', 'locale']], function () {

    Route::apiResources([

        'genders' => 'API\GenderController'

    ]);

});


查看完整回答
反對 回復(fù) 2022-07-09
  • 2 回答
  • 0 關(guān)注
  • 178 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號