Çalıştığım bir web uygulaması için 2 faktörlü bir kimlik doğrulaması oluşturmak için https://github.com/chregu/GoogleAuthenticator.php kullanıyorum. Her şey gizli ve hatta kod çalıştıran çalışır. Artık aynı kodu farklı bir sunucuda kurdum ve yeni bir gizli anahtar oluşturdum ve mobil cihazda oluşturulan kod artık eşleşmediği için Google kimlik doğrulaması mobil uygulamasına ekledim.PHP Kullanarak Google Authenticator
Her iki sunucudaki sonuçları karşılaştırarak kazarım ve farkettim() işlevi farklı zaman (1 saat fark) döndürür, sonra 2. sunucumu (google kodunun çalışmadığı yerde) ilk kez aynı zamana sahip olması için zorladım. çalıştı. Yani gerçekten kafam karışmış bu tür bir zaman dilimi sorunu mu? Coz, kendi saat dilimine sahip olmak için bu sunuculara ihtiyacım var.
Etrafta bir iş var mı?
Ayrıca, https://support.google.com/accounts/answer/185834?hl=en'u takip ettim ve google authenticator uygulamam senkronizasyonum hala çalışmıyor. Mobil uygulamada oluşturulan kod, bir saat sonra 2. sunucumda çalışır. Herkes bana yardım edebilir veya bana farklı bir yaklaşım önerebilir. Burada
benim sunucu zaman internet zamanla senkronize olmadığını öğrendim yukarıdaki kütüphanedeclass 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;
}
}
Birkaç düşünmeden sonra, kullanıcıların saat dilimi gibi daha fazla bilgi kaydetmeyi ve ait oldukları saat dilimini temel alarak zaman ayarlayarak kod yazmayı düşünüyorum. Başka daha iyi bir çözüm var mı? –