2017-01-01 4 views
0

많은 경로 앞에/org/{id}가 붙는 휴식 API가 있습니다. 이 접두사는 중첩 된 데이터의 범위를 지정하며 사용자가 조직의 구성원인지 확인해야합니다. 미들웨어가 이러한 검사를 실행하고 요청의 나머지 부분에서 액세스 할 수있는 orgcontext 클래스를 초기화하는 가장 좋은 장소가 될까요?Laravel rest API 미들웨어

+0

있습니까 개 이상의 조직의 사용자가 일반적으로 멤버? – ceejayoz

+0

@ceejayoz 예. 프런트 엔드에는 어떤 기관에서 근무하고 있는지를 변경하는 기능이 있습니다. 각도 스파이며 사용자가 다른 탭에서 다른 조직에서 작업 할 수 있도록 현재 저장소 ID를 저장하기 위해 세션 저장소를 사용하고 있습니다. –

답변

1

미들웨어 아마 그 검사를 할 수있는 완벽한 장소입니다 :

<?php 

namespace App\Http\Middleware; 

use Closure; 
use App\Repositories\Eloquent\UserRepository; 

class CanAccessOrg 
{ 
    public function handle($request, Closure $next, UserRepository $userRepository) 
    { 
     if (! $userRepository->currentUserCanAccessOrg(Session::get('org'))) { 
      Auth::logout(); 

      return redirect()->route('login')->withErrors(['msg', 'You dont have access to this org']);; 
     } 

     return $next($request); 
    } 
} 
관련 문제