Время не совпадает на серверах - двухфакторная аутентификация в php - PullRequest
0 голосов
/ 28 марта 2019

Я создал двухфакторную аутентификацию в PHP, используя google authenticator.Он хорошо работает на моем локальном хосте, но на моем сайте сгенерированный код не соответствует.Я обнаружил, что это проблема конфигурации времени.Помоги мне настроить время на два фактора.

public function verifyCode($secret, $code, $discrepancy = 1, $currentTimeSlice = null)
{
    if ($currentTimeSlice === null) {
        $currentTimeSlice = floor(time() / 30);
    }

    for ($i = -$discrepancy; $i <= $discrepancy; $i++) {
        $calculatedCode = $this->getCode($secret, $currentTimeSlice + $i);
        if ($calculatedCode == $code ) {
            return true;
        }
    }

    return false;
}

1 Ответ

0 голосов
/ 29 марта 2019

Скорее всего, это дрейф времени на веб-сервере. Убедитесь, что время на веб-сервере правильное и точное (UTC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...