/**
  * Hash a one-time login key for storage as a temporary token.
  *
  * @param PhabricatorUser User this key is for.
  * @param PhabricatorUserEmail Optionally, email to verify when
  *  link is used.
  * @param string The one time login key.
  * @return string Hash of the key.
  * task onetime
  */
 private function getOneTimeLoginKeyHash(PhabricatorUser $user, PhabricatorUserEmail $email = null, $key = null)
 {
     $parts = array($key, $user->getAccountSecret());
     if ($email) {
         $parts[] = $email->getVerificationCode();
     }
     return PhabricatorHash::digest(implode(':', $parts));
 }
Ejemplo n.º 2
0
 private function generateEmailToken(PhabricatorUserEmail $email, $offset = 0)
 {
     $key = implode('-', array(PhabricatorEnv::getEnvConfig('phabricator.csrf-key'), $this->getPHID(), $email->getVerificationCode()));
     return $this->generateToken(time() + $offset * self::EMAIL_CYCLE_FREQUENCY, self::EMAIL_CYCLE_FREQUENCY, $key, self::EMAIL_TOKEN_LENGTH);
 }