您可以使用新属性 authenticationExpiration 自定义您的 User 类:
`
class CustomUser extends User
{
protected $authenticationExpiration;
public function setAuthenticationExpiration( $timestamp)
{
$this->authenticationExpiration = $timestamp;
return $this;
}
public function getAuthenticationExpiration()
{
return $this->authenticationExpiration;
}
}`
您可以像这样自定义 UserProvider 方法“refereshUser”:
`
public function refreshUser(UserInterface $user) {
if (!$this->supportsClass(get_class($user))) {
throw new UnsupportedUserException('usuported class');
}
// durée
if( time() > $user->getAuthenticationExpiration() ){
throw new AutoLoginTokenNotFoundException('Login failed');
}
else {
return $user;
}
}
`
并在您的用户提供程序服务方法“loadUserByUsername($username)”的末尾添加:
`
public function loadUserByUsername($username)
{
// ...
$user = new CustomUser($username, $data);
$user->setAuthenticationExpiration( time() + 3600);
return $user ;
}
`