2017-01-01 8 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); 
    } 
} 
関連する問題