Laravel Jetstream - требуется ли Sanctum для защиты веб-маршрутов?
Мы используем последнюю версию
Laravel
с
Laravel Jetstream
и хотите реализовать функцию, позволяющую нашим администраторам входить в систему от имени обычного пользователя. Это позволяет нам оказывать лучшую поддержку, если некоторые пользователи сталкиваются с проблемами со своими учетными записями.
Эта функция кажется идеальной для достижения желаемого результата:
Auth::loginUsingId(1);
К сожалению, я получаю следующее сообщение об ошибке
Method Illuminate\Auth\RequestGuard::loginUsingId does not exist
Через некоторое время, благодаря помощи Laravel Debugbar, я понял, что проблема вызвана
Laravel Sanctum
. Он не включает указанную выше функцию и настроен для защиты маршрутов в
app\routes\web.php
файл.
Вроде работает после смены
middleware
из
Route::middleware(['auth:sanctum', 'verified'])
к
Route::middleware(['auth', 'verified'])
Короче говоря: есть ли другое решение для этого? Или лучше: это вообще правильное решение? Могу ли я просто удалить из Интернета маршруты или это требуется по какой-то причине? Мы хотим по-прежнему использовать
Sanctum
для аутентификации наших мобильных приложений API на основе токенов.
1 ответ
Sanctum предоставляет простой механизм (по сравнению с Passport) для аутентификации ваших API и SPA (обслуживаемых API).
Если вы не разрабатываете SPA, вы не обязаны использовать
auth:sanctum
промежуточное программное обеспечение и вместо этого может использовать Интернет
auth
промежуточное ПО.
Вы все еще можете и должны использовать промежуточное ПО sanctum в своем
routes/api.php
файл.