public function createToken(Request $request) { try { $data = $this->manager->decode($request->query->get($this->options['signed_login_parameter']), $this->options['intention'])->getData(); } catch (ExpiredException $e) { throw new AuthenticationException('Signed request expired', 0, $e); } catch (SignerException $e) { throw new AuthenticationException('Invalid signed request', 0, $e); } if (!isset($data['username'])) { throw new AuthenticationException('Invalid signed request - username required'); } $token = new SignedRequestToken($data['username']); $token->setSignedData($data); return $token; }
public function authenticate(TokenInterface $token) { /** * @var SignedRequestToken $token */ $user = $this->provider->loadUserByUsername($token->getUsername()); if (!$user instanceof UserInterface) { throw new AuthenticationServiceException('The user provider must return a UserInterface object.'); } $signedData = $token->getSignedData(); $token = new SignedRequestToken($user->getUsername(), $user->getRoles()); $token->setSignedData($signedData); $token->setUser($user); $token->setAuthenticated(true); $this->userChecker->checkPostAuth($user); return $token; }