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;
}
}
OriginalL'auteur Abhishek Salian | 2014-10-24
Vous devez vous connecter pour publier un commentaire.
De constater que mon serveur de temps n'a pas été synchronisé avec l'heure d'internet. Après la synchronisation du temps dans le serveur web, la question ai résolu.
Si le fuseau horaire n'affecte pas l'authentificateur, tant que le téléphone mobile et le serveur ont été synchronisés à corriger les temps (NTP serveurs).
Si quelqu'un ayant le même problème de vérification de l'heure du serveur et le téléphone mobile, assurez-vous que ils montrent un bon moment, même une minute, lents ou rapides, peuvent générer des codes erronés.
OriginalL'auteur Abhishek Salian