服务器上的时间不匹配 - php中的双因素身份验证

问题描述 投票:0回答:1

我使用谷歌身份验证器在PHP中创建了双因素身份验证。它在我的localhost上运行良好,但在我的网站上生成的代码不匹配。我发现这是一个时间配置问题。协助我设置双因素的时间。

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;
}
php two-factor-authentication
1个回答
0
投票

很可能是Web服务器上的时间偏差。确保Web服务器上的时间正确且准确(UTC)。

© www.soinside.com 2019 - 2024. All rights reserved.