Я пытался установить срок действия токена на 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()
функции?