Токен святилища Laravel после авторизации
Я использую в своем проекте Laravel Sanctum. Я создал промежуточное ПО для добавления заголовка авторизации (токена носителя) для каждого запроса API. У пользователя Auth есть токен, но он хешируется в базе данных. Я хочу отправить токен (который авторизован) для следующих запросов. Как я могу получить значение аутентифицированного токена (например, токен JWT)?
2 ответа
Вы можете получить
plainTextToken
только когда он впервые создан. После того, как он создан, получить его снова будет невозможно. Он возвращается в теле ответа token / create. Захватите его и не потеряйте, это будет единственный способ для этого пользователя связаться / аутентифицироваться с вашими защищенными маршрутами. После создания хешированная (не дешифруемая) версия сохраняется в базе данных. Токен в виде обычного текста, который вы сохраняете из метода tokens / create, хешируется и сравнивается с ним для подтверждения личности пользователя. В отличие от JWT, вы не получите новых итераций одного и того же токена после создания.
Подробнее см. Здесь: https://laravel.com/docs/8.x/sanctum#issuing-api-tokens
Вы можете поймать токен из заголовка, подобного этому
$token = null;
$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
if (strpos($headers['Authorization'], 'Bearer') !== false) {
$token = str_replace('Bearer ', '', $headers['Authorization']);
}
}