[英]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.