Php 如何在没有身份验证的情况下创建JWT令牌 “laravel/framework”:“5.7.*” “tymon/jwt认证”:“开发人员开发”

Php 如何在没有身份验证的情况下创建JWT令牌 “laravel/framework”:“5.7.*” “tymon/jwt认证”:“开发人员开发”,php,laravel,jwt,Php,Laravel,Jwt,我正在尝试创建一个添加了自定义声明的JWT令牌,而不使用auth(这意味着我不希望从凭据创建令牌)。这是为了创建不需要登录的令牌,例如忘记/重置密码等 使用Tymon/JWTAuth() 由于最新的Laravel存在问题,因此建议加载最新的dev(1.0.x-dev)。 我尝试了以下代码,但没有成功: 类OTL扩展模型实现JWTSubject 使用JWTAuth 使用Tymon\JWTAuth\Contracts\JWTSubject 使用Tymon\JWTAuth\Facades\JWTFa

我正在尝试创建一个添加了自定义声明的JWT令牌,而不使用auth(这意味着我不希望从凭据创建令牌)。这是为了创建不需要登录的令牌,例如忘记/重置密码等

  • 使用Tymon/JWTAuth() 由于最新的Laravel存在问题,因此建议加载最新的dev(1.0.x-dev)。 我尝试了以下代码,但没有成功:
  • 类OTL扩展模型实现JWTSubject
  • 使用JWTAuth
  • 使用Tymon\JWTAuth\Contracts\JWTSubject
  • 使用Tymon\JWTAuth\Facades\JWTFactory

公共静态函数getJwtToken($customerId、$action、$token){
$customClaims=['action'=>$action,'customer id'=>$customerId,'token'=>$token];
$factory=JWTFactory::customClaims($customClaims);
$payload=$factory->make();
$token=JWTAuth::encode($payload);
返回$token;

我收到一个错误:
JWT有效负载不包含所需的声明


我希望收到包含上述有效负载的令牌。

我刚刚遇到了相同的错误,并且能够通过更新生成的配置文件
config/jwt.php
中所需声明的列表来解决它

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

还要确保您已经运行了php artisan jwt:secret,或者提供了用于签名的密钥。

我刚刚遇到了相同的错误,并且能够通过更新生成的配置文件
config/jwt.php
中所需声明的列表来解决它

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

还要确保您已经运行了
php artisan jwt:secret
或以其他方式提供了用于签名的密钥。

我通过在
config/jwt.php
中注释掉
'exp'
中的
required\u claims
解决了这个问题:

。。。。。
“所需索赔”=>[
"国际空间站",,
“iat”,
//“exp”,
.....
],

我解决了这个问题,在
配置/jwt.php
中注释掉了
'exp'
中的
required\u索赔

。。。。。
“所需索赔”=>[
"国际空间站",,
“iat”,
//“exp”,
.....
],

Hello,可能是jwt auth软件包不允许您在没有身份验证声明的情况下使用jwt令牌?可能您应该尝试在此处使用本机jwt库?您还可以尝试覆盖生成令牌的方法Hello,可能是jwt auth软件包不允许您在没有身份验证声明的情况下使用jwt令牌身份验证声明?也许您应该尝试在此处使用本机jwt库?您还可以尝试重写生成令牌的方法