PHP code example of christian-riesen / otp
1. Go to this page and download the library: Download christian-riesen/otp library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
christian-riesen / otp example snippets
use Otp\Otp;
use Otp\GoogleAuthenticator;
use ParagonIE\ConstantTime\Encoding;
// Get a Pseudo Secret
// Defaults to 16 characters
$secret = GoogleAuthenticator::generateRandom();
// Url for the QR code
// Using totp method
$url = GoogleAuthenticator::getQrCodeUrl('totp', 'Label like [email protected]', $secret);
// Save the secret with the users account
// Display QR Code to the user
// Now how to check
$otp = new Otp();
// $key is a 6 digit number, coming from the User
// Assuming this is present and sanitized
// Allows for a 1 code time drift by default
// Third parameter can alter that behavior
if ($otp->checkTotp(Encoding::base32DecodeUpper($secret), $key)) {
// Correct key
// IMPORTANT! Note this key as being used
// so nobody could launch a replay attack.
// Cache that for the next minutes and you
// should be good.
} else {
// Wrong key
}
// Just to create a key for display (testing)
$key = $otp->totp(Encoding::base32DecodeUpper($secret));