2017-03-05 89 views
3

我不明白我做错了什么。 我无法设置令牌过期时间。Laravel护照令牌寿命

<?php 

namespace App\Providers; 

class AuthServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     $this->registerPolicies(); 

     Passport::tokensExpireIn(Carbon::now()->addDays(1)); 
     Passport::refreshTokensExpireIn(Carbon::now()->addDays(30)); 
    } 
} 

但是当我打电话$user->createToken(),例如像这样:

<?php 
// as a demo 
namespace App\Http\Middleware; 

class ParseSpecialToken 
{ 
    public function handle($request, Closure $next) 
    { 
     $user = User::find(1); 
     $accessToken = $user->createToken('Some token')->accessToken; 
     $request->headers->add(['Authorization' => 'Bearer '. $accessToken]); 

     return $next($request); 
    } 
} 

令牌期满仍是1年,没有1天。为什么?如何更改exp时间?

回答

0

啊,想通了个人令牌总是寿命长,这不能配置:(

0

你可以这样做:如果你做

$token->expires_at = 
     Carbon::now()->addDays(env('PERSONAL_ACCESS_TOKEN_EXPIRY__DAYS')); 

然后

$tokenResult = $user->createToken('Personal Access Token'); 
$token = $tokenResult->token; 
$token->expires_at = 
     Carbon::now()->addDays(env('PERSONAL_ACCESS_TOKEN_EXPIRY__DAYS')); 

$token->save(); 
+0

'expir数据库表中的es_at'值仅供参考。到期时间戳记被编码到JWT令牌中。这是行不通的。 –

0

在任何请求不检查到期日期,所以我认为这不是个人令牌的有效选项。