public function authenticate(TokenInterface $token) { /* @var $token OpauthToken */ if ($this->userProvider instanceof OpauthUserProviderInterface) { $user = $this->userProvider->loadUserByOpauthResult($token->getOpauthResult()); } else { $username = $token->getOpauthResult()->getProvider() . ':' . $token->getOpauthResult()->getUid(); $user = $this->userProvider->loadUserByUsername($username); } if ($user) { $authenticatedToken = new OpauthToken($token->getOpauthResult(), $user->getRoles()); $authenticatedToken->setUser($user); return $authenticatedToken; } throw new AuthenticationException('The OPauth authentication failed.'); }