У меня есть API, который использует токены носителя для аутентификации.Токены на предъявителя хранятся против пользователей.Существует некоторое промежуточное программное обеспечение, которое проверяет, есть ли в запросе действительный токен-носитель, а 401 - если нет.
Учитывая, что я могу вывести пользователя из токена, я хочу ограничить область поиска всех моделейв этом контроллере API, чтобы показывать только результаты с идентификатором компании пользователя.
Есть ли у Laravel какой-то изящный магический способ сделать это? Или я собираюсь снова искать пользователя вконструктор контроллера и добавление предложений where в каждое отдельное действие?
По сути, я хочу избежать этого:
public function __construct()
{
# 401 if there isn't a valid bearer token in the request
$this->middleware('apitokencheck');
# Boo to this
$user = UsersModel::where("api_token", $request->api_token)->first();
$this->companyContext = CompaniesModel::find($user->company_id);
}
...
public function get(Request $request)
{
# Boo to this also
$where = [
"company_id" => $this->companyContext->id
];
# Filters
return InspectionsModel::where($where)->get();
}