新しい属性 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 ;
}
`