Laravel-Passport всегда ставит 1 год в срок годности - PullRequest
0 голосов
/ 31 января 2019

Я пытался установить срок действия токена на 8 часов, но он всегда установлен на 1 год.В AuthServiceProvider:

$time = new \DateTime();
$time->add(new \DateInterval('P0Y0M0DT8H0M'));
Passport::tokensExpireIn($time);

Это выполняется, когда я вхожу в приложение.Затем Laravel начинает собирать приложение и заканчивает выполнение функции сборки (Illuminate\Foundation\Application->build).Когда этот код выполняется:

if ($concrete instanceof Closure) {
    return $concrete($this, $this->getLastParameterOverride());
}

вызывается PassportServiceProvider-> registerAuthorizationServer, а внутри Passport::tokensExpireIn() выполняется не менее 5 раз, поэтому, поскольку он вызывается без параметра DateTime, он устанавливает время истечения токенов равным 1год снова.

Я подтвердил, что при первом входе в функцию tokensExpireIn он правильно устанавливает время истечения, но затем выполняет предыдущий код и переопределяет его на 1 год.

Есть ли какие-либо проблемы с этим или есть ли способ установить время истечения после этой registerAuthorizationServer() функции?

...