可以在各語系下實行,C#,java
最近剛好在使用php,於是便有下列範例供參考
相信大家玩遊戲為了防止自己辛苦拿到的道具被偷走,
都有用過 google authenticator 來做進一步帳號登入
其中邏輯非常簡單 , 取得 google api return 的 code
用該code與手機上取得的 6位數 字拼出一個結果
可以在google search任一個 git 下載
PHPGangsta/GoogleAuthenticator 其實裡面有一個 example code寫的很清楚
這裡底下看到是我重新改過符合現實的狀況
我們準備三支 php 檔案
//input.php
<form method="post" action="verif.php">
<input type="text" name="inputAuth">
<input type="submit" name="submit" value="Submit">
</form>
//verif.php <?php require_once '../PHPGangsta/GoogleAuthenticator.php'; $ga = new PHPGangsta_GoogleAuthenticator(); $checkResult = $ga->verifyCode("K12QLNQAICOTOP6C", $_REQUEST['inputAuth'], 1);
// 2 = 2*30sec clock tolerance
if ($checkResult) { echo 'OK'; } else { echo 'FAILED'; }
這邊透過google api 可以產出 key , 跟 QrCode , 都可以在手機app設定上輸入//getAuth <?php require_once '../PHPGangsta/GoogleAuthenticator.php'; $ga = new PHPGangsta_GoogleAuthenticator(); $secret = $ga->createSecret(); echo "Secret is: ".$secret."\n\n<br>"; //得出key(手動輸入) $qrCodeUrl = $ga->getQRCodeGoogleUrl('Blog', $secret); echo "Google Charts URL for the QR-Code: ".$qrCodeUrl."\n\n<br>"; //得出QrCode
(手動輸入)
?>
當然QrCode輕鬆多了不用輸入Key
每一次從手機上得到的 6位數字 與 api 產生的 key
K12QLNQAICOTOP6C可以得出一個參數便是結果囉
沒有留言:
張貼留言