for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Trait QRAuthenticator
*
* @filesource QRAuthenticator.php
* @created 21.12.2017
* @package chillerlan\QRCode\Traits
* @author Smiley <[email protected]>
* @copyright 2017 Smiley
* @license MIT
*/
namespace chillerlan\QRCode\Traits;
use chillerlan\Authenticator\Authenticator;
use chillerlan\QRCode\QRCode;
* Creates URI QR Codes for use with mmobile authenticators
trait QRAuthenticator{
* @var \chillerlan\QRCode\QROptions
protected $qrOptions;
* @var string
protected $authenticatorSecret;
* @var int
protected $authenticatorDigits = Authenticator::DEFAULT_DIGITS;
protected $authenticatorPeriod = Authenticator::DEFAULT_PERIOD;
protected $authenticatorMode = Authenticator::DEFAULT_AUTH_MODE;
protected $authenticatorAlgo = Authenticator::DEFAULT_HASH_ALGO;
* @param string $label
* @param string $issuer
* @return mixed
protected function getURIQRCode(string $label, string $issuer) {
$uri = $this->getAuthenticator()->setSecret($this->authenticatorSecret)->getUri($label, $issuer);
return (new QRCode($this->qrOptions))->render($uri);
}
* @return \chillerlan\Authenticator\Authenticator
protected function getAuthenticator():Authenticator {
return (new Authenticator)
->setPeriod($this->authenticatorPeriod)
->setDigits($this->authenticatorDigits)
->setMode($this->authenticatorMode)
->setAlgorithm($this->authenticatorAlgo)
;