0
我有一個休息API,其中很多路由將以/ org/{id}爲前綴。此前綴將限制嵌套數據的範圍,並且如果用戶是組織成員,則需要檢查該用戶。中間件是否是運行這些檢查的最佳位置,並初始化可在整個請求的其餘部分訪問的orgcontext類?Laravel rest API中間件
我有一個休息API,其中很多路由將以/ org/{id}爲前綴。此前綴將限制嵌套數據的範圍,並且如果用戶是組織成員,則需要檢查該用戶。中間件是否是運行這些檢查的最佳位置,並初始化可在整個請求的其餘部分訪問的orgcontext類?Laravel rest API中間件
中間件可能是做這些檢查的理想場所:
<?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);
}
}
是用戶通常不止一個組織的成員? – ceejayoz
@ceejayoz是的。在前端有功能來改變你正在工作的組織。它是一個角度spa,我使用會話存儲來存儲當前的組織標識,以便用戶可以在不同的標籤中使用不同的組織。 –