使用PHP的Google身份验证器

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用PHP的Google身份验证器脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经使用 https://github.com/chregu/GoogleAuthenticator.php为我正在处理的Web应用程序构建了2因子身份验证.一切都有效,甚至代码都有效.
现在我在不同的服务器中设置相同的代码生成新的密钥并将其添加谷歌身份验证器移动应用程序现在移动中生成代码不匹配.

我通过比较两个服务器上的结果并注意到time()函数返回不同的时间(1小时差异),然后我强迫我的第二个服务器(谷歌代码没有工作)与第一个服务器有相同的时间,并且它工作.所以我真的很困惑这是某种时区问题吗?因为我真的需要这些服务器拥有自己的时区.

有什么工作吗?

此外,我遵循https://support.google.com/accounts/answer/185834?hl=en并同步我的谷歌身份验证器应用程序仍然无法正常工作.移动应用程序中生成代码在一小时后在我的第二台服务器上运行.任何人都可以帮助我或建议我一个不同的方法.

这是我用来连接上面的库的代码

class GOOGLEAuthLibrary extends GoogleAuthenticator
{
    public function getSecretKey()
    {
        $secretKey = $this->generateSecret();

        return $secretKey;
    }

    public function getQRLink($username,$hostname,$secretKey)
    {
        $url = 'https://chart.googleapis.COM/chart?cht=qr&chs=300x300&chl=';

        $qrCode = 'otpauth://totp/'.$username.'@'.$hostname.'?secret='.$secretKey;

        $url = $url.$qrCode;

        return $url;
    }

    public function getauthcode($secretKey)
    {
        $authCode =$this->getCode($secretKey);

        return $authCode;
    }
}
发现我的服务器时间没有与互联网时间同步.在Web服务器中同步时间后问题得到解决.
只要移动话和服务器同步到正确的时间(NTP服务器),时区就不会影响验证者.

如果任何有相同问题的人检查服务器时间和手机时间,请确保他们显示正确的时间,即使一分钟慢或快,最终可能会生成错误代码.

脚本宝典总结

以上是脚本宝典为你收集整理的使用PHP的Google身份验证器全部内容,希望文章能够帮你解决使用PHP的Google身份验证器所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。