То, что вы пытались сделать с токеном, делается под капотом, когда вы помещаете промежуточное ПО auth:api
в маршрут и вызываете его, предоставляя токен на предъявителя.
Если вы покопаетесь в исходном коде, основная «точка входа» для проверки токена находится в промежуточном программном обеспечении Authenticate
, которое просто вызывает Auth::check()
.
Это приведет к проверке аутентифицированного пользователя в используемой вами системе аутентификации (в вашем случае - Passport). Он проанализирует токен и получит пользователя authd.
Но когда вы используете промежуточное программное обеспечение auth:api
, вы всегда можете получить зарегистрированный пользовательский экземпляр на вашем контроллере, не отправляя токен самостоятельно.
Для этого у вас есть несколько способов:
- Через фасад
Auth
: Auth::user()->id
или напрямую Auth::id()
- Через экземпляр запроса:
$request->user()->id
.
Примечание: вы можете получить экземпляр запроса также с помощью фасада Request
или вспомогательного метода request()
.
В любом случае пользовательский метод выдаст вам аутентифицированный в данный момент пользовательский экземпляр. Затем вы можете получить атрибут id.