Задать вопрос
@Vasek18

Как сделать токены в Laravel 5.3 Passport с точками?

Я обновил свой проект на Ларавеле с 5.2 до 5.3, чтобы использовать Laravel Passport и сделать через него авторизация по токену через апи.
Спустя уже несколько недель я всё мучаюсь с ошибкой авторизации (Unauthenticated error). После десятков часов изучения интернета по этому вопросу я начал дебажить код самого пакета и вот что понял:
Моя проблема выявляется в этом файле \vendor\lcobucci\jwt\src\Parser.php, а именно в этом методе:
protected function splitJwt($jwt)
    {
        if (!is_string($jwt)) {
            throw new InvalidArgumentException('The JWT string must have two dots');
        }

        $data = explode('.', $jwt);

        if (count($data) != 3) {
            throw new InvalidArgumentException('The JWT string must have two dots');
        }

        return $data;
    }

Смысл в том, что в токенах, которые я получаю посредством
$this->user->createToken($this->user->id.' Access Token')->accessToken;

Нет ни одной точки, так что explode не работает и всё падает с исключением. Типичный токен, который у меня получается выглядит так:
1369781b342d5181072c7f2859a54102f1dc992f6367c4b8ac37193799ec893438ad1b6ac43af3ae
Размер всегда примерно одинаковый и никаких точек

Пасспорт настраивал по официальной инструкции https://laravel.com/docs/5.3/passport, конечно же
Также видел видео самого Тейлора о пасспорте на Ларакасте
Тонны страниц форумов, к сожалению, не помогли мне

Прошу сообщество помочь мне с этой проблемой
Заранее спасибо за любую помощь
  • Вопрос задан
  • 539 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Vasek18 Автор вопроса
Я нашёл в чём трабла
Я пытался показать токен пользователю через $user->tokens()->first()->id
Но это не токен, это айдишник некой сущности в бд
Просто похожей на токен

Настоящий код токена мы получаем из $this->user->createToken($name)->accessToken
И именно это значение нужно возвращать и показывать
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы