ttl未在JWT Auth Laravel中过期

时间:2016-08-01 23:15:03

标签: laravel authentication token jwt

'ttl' => null,
'refresh_ttl' => null,

我需要令牌不会过期.. 它不起作用,它总是返回“错误”:“令牌过期”

4 个答案:

答案 0 :(得分:1)

在文件vendor / tymon / jwt-auth / config / config.php中更改行

'ttl' => env('JWT_TTL', 60),

'ttl' => env('JWT_TTL', null),

同时删除此行中的exp

 'required_claims' => [
        'iss',
        'iat',
        'exp',
        'nbf',
        'sub',
        'jti',
    ],

适用于我的

答案 1 :(得分:1)

在 JWTAuth 中不过期登录的步骤:

  1. 在 config 文件夹中打开 jwt.php(如果它不可用,则在项目中使用此命令发布 jwt.php 文件==>

php artisan vendor:publish --provider="Tymon\JWTAuthProviders\JWTAuthServiceProvider" )

  1. 改变

'ttl' => env('JWT_TTL', 60),

'ttl' => env('JWT_TTL', null),

  1. 删除此行中的 exp:-

'required_claims' => [ 'iss', 'iat', 'exp', 'nbf', 'sub', 'jti', ],

答案 2 :(得分:0)

这个问题很模糊,因为我们不知道哪个库/组件用于生成Jot,因此我们无法知道过期声明的管理方式。 通常,要获得未过期的Jot,此类声明(expttlrefresh_ttl)不应成为有效负载的一部分。

以下令牌将在3600秒后过期。

{
    'iss': 'my-service'
    'aud': 'your-service'
    'sub': 'my-client'
    'ttl': 3600
}

以下令牌永远不会过期。

{
    'iss': 'my-service'
    'aud': 'your-service'
    'sub': 'my-client'
}

答案 3 :(得分:0)

如果您不想有条件地使令牌过期。

  1. 从config / jwt.php中的必需声明中删除exp
  2. 添加此代码段以在控制器内将TTL设置为null。
if ( // your condition ) {
    $this->guard()->setTTL(null);
}