public function testFindLatestOneByUserId() { $originalUserToken = $this->setupUserWithToken(); $this->setCountLogger(); $userToken = $this->userTokenRepository->findLatestOneByUserId($originalUserToken->getUser()->getId()); $userToken->getUser()->getEmail(); $this->assertEntitiesEqual($originalUserToken, $userToken); $this->assertSame(2, $this->getTotalQueries()); }
public function loginWithToken($email, $token, $remoteIp) { $user = $this->getUserOrAssertAndRecordLoginFailure($email, $remoteIp); try { $userToken = $this->userTokenRepository->findLatestOneByUserId($user->getId()); } catch (EntityNotFoundException $e) { $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user); throw UserLoginException::tokenNotFound(); } if (!$userToken->verifyToken($token)) { $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user); throw UserLoginException::tokenNotValid(); } if (!$userToken->verifyTokenDateValid()) { $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user); throw UserLoginException::tokenExpired(); } $this->recordLogin($email, $remoteIp, UserLoginResultType::success(), $user); return $user; }