Как создать токен JWT без аутентификации - PullRequest
0 голосов
/ 23 декабря 2018
  • "laravel / framework": "5.7. *"
  • "tymon / jwt-auth": "dev -velop"

Я пытаюсь создатьтокен JWT с добавленными пользовательскими утверждениями, без auth (что означает, что я не собираюсь создавать токен из учетных данных.) Это делается для создания токенов, не требующих входа в систему, таких как Forgot /сброс пароля и т. д.

  • с использованием Tymon / JWTAuth (https://github.com/tymondesigns/jwt-auth) Поскольку возникла проблема с Latest Laravel, было рекомендовано загрузить последнюю версию dev (1.0.x-dev)Я пробовал следующий код безрезультатно:
  • class OTL extends Model implements JWTSubject
  • use JWTAuth;
  • use Tymon\JWTAuth\Contracts\JWTSubject;
  • use Tymon\JWTAuth\Facades\JWTFactory;

public static function getJwtToken($customerId, $action, $token){ $customClaims = ['action' => $action, 'customer-id' => $customerId, 'token' => $token]; $factory = JWTFactory::customClaims($customClaims); $payload = $factory->make(); $token = JWTAuth::encode($payload); return $token;

Я получаю сообщение об ошибке: JWT payload does not contain the required claims.

Я ожидаю получить токен, который содержит полезную нагрузку выше.

1 Ответ

0 голосов
/ 20 февраля 2019

Я только что столкнулся с той же ошибкой и смог ее исправить, обновив список необходимых утверждений в сгенерированном файле конфигурации config/jwt.php.

...
'required_claims' => [
    'exp',
    'sub',
    ...
],
...

Также убедитесь, что вы запустили php artisan jwt:secret илив противном случае предоставляется секретный ключ для подписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...