我尝试将令牌的过期时间设置为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()
函数之后的到期时间?