public function authenticate(TokenInterface $token) { $user = $this->userProvider->loadUserByUsername($token->getUsername()); if ($user) { $authencatedToken = new FacebookUserToken(['ROLE_FACEBOOK_USER']); $authencatedToken->setUser($user); return $authencatedToken; } throw new AuthenticationException('Facebook authentication failed.'); }
public function handle(GetResponseEvent $event) { $helper = $this->facebook->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); if (!$accessToken) { return; } $response = $this->facebook->get('/me', $accessToken); $user = $response->getGraphNode(FacebookUser::class); $token = new FacebookUserToken(); $token->setUser($user); $authToken = $this->authenticationManager->authenticate($token); $this->tokenStorage->setToken($authToken); return; } catch (FacebookResponseException $e) { $this->logger->info(sprintf('FacebookResponseException: %s', $e->getMessage())); } catch (FacebookSDKException $e) { $this->logger->warning(sprintf('FacebookSDKException: %s', $e->getMessage())); } catch (AuthenticationException $e) { $this->logger->info(sprintf('AuthenticationException: %s', $e->getMessage())); } $event->setResponse(new RedirectResponse('/login')); }