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());
 }
Beispiel #2
0
 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;
 }