middleware('auth:sanctum') то все хорошо.
Но у меня есть маршруты куда есть доступ как для авторизированных пользователей так и для обычных. Как заставить Sanctum авторизировать пользователя по токену без middleware?
никак
написать свой мидлвар, + какойнить CustomAuth в нем чекаете токен, если токена нет - CustomAuth::setUser(null) есть есть - находите кому приналделит токен, тянете юзера с базы и CustomAuth::setUser($user) в контроллере вместо Auth используете CustomAuth CustomAuth содержит статических 2 метода (или больше если нужно) setUser($user) и user():?User + статиная приватная переменная $user костыльно, но делов на 10 минут
Спасибо
На ху я? public function someAction(Fatory $auth): JsonResponse { $user = $auth->guard('token')->user(); if ($user) {} else {}; }
Ну я наугад, не использовал sanctum. Спасибо.
для "наугад" - великолепный результат)))
@dzhuryn выбросьте мой вариант и используйте этот use Illuminate\Contracts\Auth\Factory; sanctum вместо token
Обсуждают сегодня