コード例 #1
0
 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.');
 }