API ограничения скорости Laravel для пользователя с базовой аутентификацией ⇐ Php
API ограничения скорости Laravel для пользователя с базовой аутентификацией
Я пытаюсь установить ограничение скорости для пользователя на маршруте API, используя базовую аутентификацию в api.php, но кажется, что информация пользователя для аутентификации не передается в RateLimiter, как я получаю ошибка:
"Попытка прочитать идентификатор свойства при нулевом значении".
Вот мой код для configureRateLimit():
RouteServiceProvider.php:
/** * Настройте ограничители скорости для приложения. * * @return void */ защищенная функция configureRateLimiting() { RateLimiter::for('getRequest', function (Request $request) { return Limit::perMinute(2)->by($request->user()->id)->response(function(){ вернуть ответ()->json([ 'ответ' => 'не удалось', 'message' => 'Сделано слишком много запросов', ],429); }); }); } Маршрут api.php:
Route::middleware(['auth.basic.once'])->prefix('v1')->group(function() { Route::middleware(['throttle:getRequest'])->get('/animals/{id?}', [animalsApiController::class, 'show']); }); Вместо этого я пытался использовать Auth::user()->id, user()->id() и Auth::id() из $request->user()->id, но та же ошибка. Может кто-нибудь сказать мне, делаю ли я что-то не так или что-то упускаю?
Примечание: при проверке $request->user()->id в контроллере все отображается нормально.
Я пытаюсь установить ограничение скорости для пользователя на маршруте API, используя базовую аутентификацию в api.php, но кажется, что информация пользователя для аутентификации не передается в RateLimiter, как я получаю ошибка:
"Попытка прочитать идентификатор свойства при нулевом значении".
Вот мой код для configureRateLimit():
RouteServiceProvider.php:
/** * Настройте ограничители скорости для приложения. * * @return void */ защищенная функция configureRateLimiting() { RateLimiter::for('getRequest', function (Request $request) { return Limit::perMinute(2)->by($request->user()->id)->response(function(){ вернуть ответ()->json([ 'ответ' => 'не удалось', 'message' => 'Сделано слишком много запросов', ],429); }); }); } Маршрут api.php:
Route::middleware(['auth.basic.once'])->prefix('v1')->group(function() { Route::middleware(['throttle:getRequest'])->get('/animals/{id?}', [animalsApiController::class, 'show']); }); Вместо этого я пытался использовать Auth::user()->id, user()->id() и Auth::id() из $request->user()->id, но та же ошибка. Может кто-нибудь сказать мне, делаю ли я что-то не так или что-то упускаю?
Примечание: при проверке $request->user()->id в контроллере все отображается нормально.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как отправить файл в Paperless NGX API с токеном CSRF и базовой аутентификацией в PHP?
Anonymous » » в форуме Php - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как разместить файл в безбумажный NGX API с токеном CSRF и базовой аутентификацией в PHP?
Anonymous » » в форуме Php - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Залп выбрасывает AuthFailureError (401) с базовой HTTP-аутентификацией
Anonymous » » в форуме Android - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Залп выбрасывает AuthFailureError (401) с базовой HTTP-аутентификацией
Anonymous » » в форуме Android - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-