簡體   English   中英

Laravel Oauth2范圍和路線

[英]Laravel Oauth2 Scopes and Routes

我正在使用具有不同范圍的Oauth2( lucadegasperi / oauth2-server-laravel )開發Laravel API,比如說admin和user。 該API在前端提供emberjs應用程序。 顯然,與管理員相比,用戶訪問的資源更少。 我的問題是,ember將向某些應具有相同名稱但將使用不同控制器的路由發出請求。

我想設置我的api,以便可以使用相同名稱的路由,在兩個作用域中使用不同的控制器,以便可以將某些內容分開。 因為我想基本上保留ember應用程序的結構。

問題是當我以管理員身份發出請求時,它拋出403,表示只有用戶范圍才能使用該路由。

那不是我想的那樣。 我認為過濾器將首先檢查范圍並輸入路由,即使同一路由存在於另一個范圍中也是如此。 但是從外觀上,您必須使用對我的Ember App不利的其他路由名稱,或者您過濾從每個控制器和方法發送給每個角色的內容,並使用路由過濾器“ oauthOr”,以便兩個角色都可以訪問控制器。

如果沒有辦法做我想做的事情(請參見代碼),是否有一種方法可以防止控制器基於用戶角色/作用域執行某些方法? Appart是從手動“ ifing and elseing”到整個地方嗎?

下面的示例說明了我要完成的工作。

    Route::group(array( 'prefix' => 'api/1', 'before' => 'oauth:admin' ), function(){

    Route::resource('cars', 'ApiAdminCarsController');
    Route::resource('bikes', 'ApiAdminBikesController');

});

Route::group(array( 'prefix' => 'api/1', 'before' => 'oauth:user' ), function(){

    Route::resource('cars', 'ApiUserCarsController');
    Route::resource('bikes', 'ApiUserBikesController');

});

在Route :: resource調用中,您可以執行諸如“ only”,“ except”之類的某些操作,以限制可以通過哪個路由執行哪些方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM