$otp = new Totp();
$otp->setLabel('username@example.com');
$otp->setIssuer('example.com');
Das Secret muss nur einmal pro Benutzer erstellt werden.
$secret = $otp->createSecret();
$otp->setSecret($secret);
$otp->getUrl();
Die Url sieht dann z.B. so aus:
otpauth://totp/username@example.com?
issuer = example.com
algorithm = SHA1
digits = 6
period = 30
secret = LWZU3NR3PN5FXUX6XTHWE7OIWJEAFTWC
Einige Authenticator unterstützen die Übertragung der Einstellungen durch das Scannen eines QRCodes. So ein QRCode kann z.B. mit dem Paket blar/google-charts erstellt werden.
$qrcode = new Qrcode();
$qrcode->setSize(256, 256);
$qrcodeUrl = $qrcode->createUrl($otp->getUrl());
$otp->validate($_POST['otp']);
Für den Google-Authenticator müssen folgende Einstellungen vorgenommen werden, da dieser für einige Einstellungen Standardwerte verwendet die nicht über die otpauth-URL geändert werden können.
$otp->setAlgorithm('SHA1');
$otp->setDigits(6);
$otp->setInterval(30);