Google Authenticator à l'aide de PHP

J'ai utilisé https://github.com/chregu/GoogleAuthenticator.php construit un 2 facteur d'authentification pour une application web, je travaille sur. Tout fonctionne en générant le secret et même le code a fonctionné.
Maintenant je l'ai mis en place le même code dans un autre serveur et généré de nouvelles de la clé secrète et de l'ajouter à google authenticator mobile app maintenant le code généré dans le mobile ne marche pas match.

Je creuser jusqu'en comparant les résultats à la fois sur le serveur et a remarqué la fonction time() retourne différents temps (1 h de différence) alors j'ai forcé mon 2ème serveur(où google code ne fonctionne pas) pour avoir le même temps que les premier et il a travaillé. Donc, je suis vraiment confus est-ce une sorte de temps question de la zone? Coz j'ai vraiment besoin de ces serveurs ont leur propre fuseau horaire.

Est-il contourner?

Aussi j'ai suivi https://support.google.com/accounts/answer/185834?hl=en et synchronisé mon application google authenticator ne marche pas encore. le code généré dans l'application mobile fonctionne sur mon 2ème serveur au bout d'une heure. Quelqu'un peut-il m'aider ou me suggérer une approche différente.

ici c'est le code que j'utilise pour se connecter à la bibliothèque

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;
    }
}
Après quelques sérieuses de penser 🙂 je suis la pensée de sauver plus d'infos tel que les utilisateurs fuseau horaire, puis getcode en manipulant à la fois basées sur le fuseau horaire à laquelle ils appartiennent. Est-il une meilleure solution?

OriginalL'auteur Abhishek Salian | 2014-10-24