public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
 {
     $webToken = $token->getWebToken();
     $user = $userProvider->loadUserByUsername($webToken->getSubject());
     $this->userChecker->checkPreAuth($user);
     $this->userChecker->checkPostAuth($user);
     $token = new WebTokenToken($providerKey, $webToken, $user->getRoles());
     $token->setUser($user)->setAuthenticated(true);
     return $token;
 }