Changeset View
Changeset View
Standalone View
Standalone View
src/applications/auth/factor/PhabricatorTOTPAuthFactor.php
| Show First 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | final class PhabricatorTOTPAuthFactor extends PhabricatorAuthFactor { | ||||
| public function processAddFactorForm( | public function processAddFactorForm( | ||||
| PhabricatorAuthFactorProvider $provider, | PhabricatorAuthFactorProvider $provider, | ||||
| AphrontFormView $form, | AphrontFormView $form, | ||||
| AphrontRequest $request, | AphrontRequest $request, | ||||
| PhabricatorUser $user) { | PhabricatorUser $user) { | ||||
| $sync_token = $this->loadMFASyncToken( | $sync_token = $this->loadMFASyncToken( | ||||
| $provider, | |||||
| $request, | $request, | ||||
| $form, | $form, | ||||
| $user); | $user); | ||||
| $secret = $sync_token->getTemporaryTokenProperty('secret'); | $secret = $sync_token->getTemporaryTokenProperty('secret'); | ||||
| $code = $request->getStr('totpcode'); | $code = $request->getStr('totpcode'); | ||||
| $e_code = true; | $e_code = true; | ||||
| ▲ Show 20 Lines • Show All 366 Lines • ▼ Show 20 Lines | foreach ($timesteps as $timestep) { | ||||
| if (phutil_hashes_are_identical($code, $expect_code)) { | if (phutil_hashes_are_identical($code, $expect_code)) { | ||||
| return $timestep; | return $timestep; | ||||
| } | } | ||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| protected function newMFASyncTokenProperties(PhabricatorUser $user) { | protected function newMFASyncTokenProperties( | ||||
| PhabricatorAuthFactorProvider $providerr, | |||||
| PhabricatorUser $user) { | |||||
| return array( | return array( | ||||
| 'secret' => self::generateNewTOTPKey(), | 'secret' => self::generateNewTOTPKey(), | ||||
| ); | ); | ||||
| } | } | ||||
| } | } | ||||