/** * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if (!$user instanceof UserInterface) { return; } // $data['token'] contains the JWT $data['id'] = $user->getId(); $event->setData($data); }
/** * Add public data to the authentication response. * * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $username = $event->getUser() ? $event->getUser()->getUsername() : ''; $userManager = $this->em->getRepository('UserBundle:User'); $user = $userManager->findOneBy(['username' => $username]); $data['user'] = array('id' => $user->getId(), 'email' => $user->getEmail()); $event->setData($data); }
/** * Add unsigned parameters, such as: * - databases (this list is also signed but presented here for listing to unauthenticated clients) * - parameters, extra info you may attach to object as necessary * * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $AuthUser = $event->getUser(); if (!$AuthUser instanceof AuthUser) { throw new AccessDeniedException('AuthUser object not found'); } if (!in_array('ROLE_USER', $AuthUser->getRoles())) { throw new AccessDeniedException('User lacks necessary role'); } $AuthUser->setLastToken($data['token']); $AuthUser = $this->entityManager->merge($AuthUser); $this->entityManager->persist($AuthUser); $this->entityManager->flush(); $data['databases'] = $this->getDatabaseArray($event->getUser()); $data['parameters'] = $this->getParametersArray($event->getUser()); $event->setData($data); }
/** * Add public data to the authentication response * * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if (!$user instanceof UserInterface) { return; } $data['data'] = array('username' => $user->getUsername(), 'roles' => $user->getRoles()); $event->setData($data); }
/** * Add public data to the authentication response * * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $this->userManager->findUserByUsernameOrEmail($event->getUser()->getUsername()); if (!$user instanceof UserInterface) { return; } $data['data'] = array('user' => $this->serializer->deserialize($this->serializer->serialize($user, 'json'), 'array', 'json')); $event->setData($data); }
public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); $data['id'] = $user->getId(); $data['email'] = $user->getEmail(); $data['firstname'] = $user->getFirstname(); $data['lastname'] = $user->getLastname(); $data['roles'] = $user->getRoles(); $event->setData($data); }
/** * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccess(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if (!$user instanceof UserInterface) { return; } $data = $this->jwtResponseTransformer->transform($data, $user); $event->setData($data); $user->setLastLogin(new \DateTime()); $this->userManager->updateUser($user); }
/** * Adding extra user data to the JSON Web Token * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if ($user instanceof UserInterface) { $this->updateUser($event, $user); $context = SerializationContext::create(); $context->setGroups(array('Default', 'full', 'userFull')); $data['user'] = json_decode($this->serializer->serialize($user, 'json', $context)); $event->setData($data); } return; }
public function attachRefreshToken(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); $request = $event->getRequest(); if (!$user instanceof UserInterface) { return; } $refreshTokenString = null; if ($request->headers->get('content_type') == 'application/json') { $content = $request->getContent(); $params = !empty($content) ? json_decode($content, true) : array(); $refreshTokenString = trim($params['refresh_token']); } else { $refreshTokenString = $request->request->get('refresh_token'); } if ($refreshTokenString) { $data['refresh_token'] = $refreshTokenString; } else { $datetime = new \DateTime(); $datetime->modify('+' . $this->ttl . ' seconds'); $refreshToken = $this->refreshTokenManager->create(); $refreshToken->setUsername($user->getUsername()); $refreshToken->setRefreshToken(); $refreshToken->setValid($datetime); $valid = false; while (false === $valid) { $valid = true; $errors = $this->validator->validate($refreshToken); if ($errors->count() > 0) { foreach ($errors as $error) { if ('refreshToken' === $error->getPropertyPath()) { $valid = false; $refreshToken->setRefreshToken(); } } } } $this->refreshTokenManager->save($refreshToken); $data['refresh_token'] = $refreshToken->getRefreshToken(); } $event->setData($data); }
public function attachRefreshToken(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); if (!$user instanceof UserInterface) { return; } $refreshToken = $this->refreshTokenManager->getLastFromUsername($user->getUsername()); if (!$refreshToken instanceof RefreshToken) { $datetime = new \DateTime(); $datetime->modify('+' . $this->ttl . ' seconds'); $refreshToken = $this->refreshTokenManager->create(); $refreshToken->setUsername($user->getUsername()); $refreshToken->setRefreshToken(); $refreshToken->setValid($datetime); $this->refreshTokenManager->save($refreshToken); } $data['refresh_token'] = $refreshToken->getRefreshToken(); $event->setData($data); }
public function attachRefreshToken(AuthenticationSuccessEvent $event) { $data = $event->getData(); $user = $event->getUser(); $request = $event->getRequest(); if (!$user instanceof UserInterface) { return; } $refreshTokenString = RequestRefreshToken::getRefreshToken($request); if ($refreshTokenString) { $data['refresh_token'] = $refreshTokenString; } else { $datetime = new \DateTime(); $datetime->modify('+' . $this->ttl . ' seconds'); $refreshToken = $this->refreshTokenManager->create(); $refreshToken->setUsername($user->getUsername()); $refreshToken->setRefreshToken(); $refreshToken->setValid($datetime); $valid = false; while (false === $valid) { $valid = true; $errors = $this->validator->validate($refreshToken); if ($errors->count() > 0) { foreach ($errors as $error) { if ('refreshToken' === $error->getPropertyPath()) { $valid = false; $refreshToken->setRefreshToken(); } } } } $this->refreshTokenManager->save($refreshToken); $data['refresh_token'] = $refreshToken->getRefreshToken(); } $event->setData($data); }
/** * Add public data to the authentication response. * * @param AuthenticationSuccessEvent $event */ public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event) { $data = $event->getData(); $data['user'] = $event->getUser()->getUsername(); $event->setData($data); }
public function it_is_not_valid_user(AuthenticationSuccessEvent $event) { $event->getData()->willReturn(array()); $event->getUser()->willReturn(null); $event->getRequest()->willReturn(null); $this->attachRefreshToken($event); }