Blog Yazarı Olmak İster misin?

Kaleminize güveniyorsanız, bloğumuzda özgürce web, hosting, teknoloji ve programlama dilleri üzerine makale yazabilirsiniz. Bizde sizi sürekli hediye kuponlar ile ödüllendiririz. Blog Yaz!


Google Authenticator Kullanımı Php Anlatım

Tahmini okuma 1 dakika 42 saniye Görüntülenme: 20

Google Authenticator kaynak dosyalarını edinmek için içerisinde qr code oluşturucu da barındıran linkini vermiş olduğum github reposunu ziyaret ediyoruz.

https://github.com/sonata-project/GoogleAuthenticator

Ardından Composer aracılığıyla, aşağıdaki komutu kullanarak dosyaları projemizin olduğu dizine çekiyoruz.

composer require sonata-project/google-authenticator

Google Authenticator için Google üzerinden alacağınız bir api key veya secret'a ihtiyaç yoktur. Secret kodunu belli başlı algoritmaya göre her kullanıcı için biz oluşturucağız. Bu anahtar değerini kullanıcı görmeyecek ancak, ilk Google Authenticator kurulumunda bu kod ile karekod oluşturulacağından her kullanıcı için farklı bir secret oluşturup veri tabanında saklamakta fayda var. Bu kısmı kullanıcı sitenize kayıt olduğunda otomatik yapabilirsiniz.

Google'ın istediği standartlara göre rastgele secret oluşturan fonksiyonumuz.

16 Haneli ve 0,1,8,9 karakterlerini içermemektedir.

function generateRandomString($length = 10) {
    $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

echo generateRandomString(16);

Kodların birleştirilmiş hali, satırlara olabildiğince açıklama ekledim.

<?php

declare(strict_types=1);
require 'vendor/autoload.php';
$secret = 'XVQ2UIGO75XRUKJY'; //BURADAKİ SECRET YUKARIDA VERDİĞİM FONKSİYON İLE RASTGELE TÜRETİLEBİLİR.

$user = "okan"; //GİRİŞ YAPMAKTA OLAN KİŞİNİN KULLANICI ADI VEYA E-POSTA ADRESİ

$siteadresi = "viptema.com";

$qrcode = \Sonata\GoogleAuthenticator\GoogleQrUrl::generate($user, $secret, $siteadresi);
$g = new \Sonata\GoogleAuthenticator\GoogleAuthenticator();


// AŞAĞIDAKİ SATIRI AÇTIĞINIZDA KAREKODU AÇACAK OLAN 6 HANELİ KODU GÖREBİLİRSİNİZ. SCRİPTİNİZ ÇALIŞIYORSA BU KODU TEKRAR YORUM SATIRI YAPIN!
//echo $g->getCode($secret);

if (isset($_POST['submit'])) {
	$code = $_POST['pass-code'];
	if ($g->checkCode($secret,$code)) {
		echo "Helal olsun kodu doğru girdin";
	}else{
		echo "Hassiktir kodu yanlış girdin.";
	}
}
?>

<img src="<?=$qrcode?>">

<form action="" method="post">
	<input type="text" name="pass-code">
	<button type="submit" name="submit">Tamam</button>
</form>

1 hafta önce Özkan Işık tarafından yazıldı. Son güncelleme 14.09.2022 06:04

Yorum Yap


İlk yorumu yapan sen ol!
Blogtan Son Yazılar

Yeni Ürünlerden İlk Siz Haberdar Olun!

Şimdi abone olarak yeni ürün ve indirim kampanyalarından anında faydalanın!

veya üye olmak isteyebilirsiniz

Üye Ol