2017-03-05 114 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

在任何請求不檢查到期日期,所以我認爲這不是個人令牌的有效選項。