/** * Add a trusted computer token for a user. * * @param mixed $user * @param string $token * @param \DateTime $validUntil */ public function addTrustedComputer($user, $token, \DateTime $validUntil) { if ($user instanceof TrustedComputerInterface) { $user->addTrustedComputer($token, $validUntil); $this->persister->persist($user); } }
/** * Generate a new authentication code an send it to the user. * * @param TwoFactorInterface $user */ public function generateAndSend(TwoFactorInterface $user) { $min = pow(10, $this->digits - 1); $max = pow(10, $this->digits) - 1; $code = $this->generateCode($min, $max); $user->setEmailAuthCode($code); $this->persister->persist($user); $this->mailer->sendAuthCode($user); }
/** * Check if code is a valid backup code * * @param \Scheb\TwoFactorBundle\Model\BackupCodeInterface $user * @param string $code * @return bool */ public function checkCode(BackupCodeInterface $user, $code) { if ($user->isBackupCode($code)) { $user->invalidateBackupCode($code); $this->persister->persist($user); return true; } return false; }
/** * Create a cookie for trusted computer. * * @param TrustedComputerInterface $user * @param Request $request * * @return Cookie */ public function createTrustedCookie(Request $request, TrustedComputerInterface $user) { $tokenList = $request->cookies->get($this->cookieName, null); // Generate new token $token = $this->tokenGenerator->generateToken(32); $tokenList .= ($tokenList !== null ? ';' : '') . $token; $validUntil = $this->getDateTimeNow()->add(new \DateInterval('PT' . $this->cookieLifetime . 'S')); // Add token to user entity $user->addTrustedComputer($token, $validUntil); $this->persister->persist($user); // Create cookie return new Cookie($this->cookieName, $tokenList, $validUntil, '/'); }
/** * Resets an authentication code an persist it * * @param \Scheb\TwoFactorBundle\Model\InWebo\TwoFactorInterface $user */ public function resetAndPersist(TwoFactorInterface $user) { $user->setInWeboAuthenticatorSecret(null); $this->persister->persist($user); }