promocat / yii2-twofa
Provides TOTP and QR codes for use with an authenticator like the one from Google or Authy
Installs: 19 018
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 3
Forks: 4
Open Issues: 1
Type:yii2-extension
Requires
- php: ^7.4
- bacon/bacon-qr-code: ~2.0
- pragmarx/google2fa: ^8.0
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2024-03-17 03:19:23 UTC
README
Provides TOTP and QR codes for use with an authenticator like the one from Google or Authy
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist promocat/yii2-twofa "*"
or add
"promocat/yii2-twofa": "*"
to the require section of your composer.json
file.
Setup
Update the user component in your config file to use the class
promocat\twofa\User::class
It should sorta look like this
'components' => [
'user' => [
'class' => promocat\twofa\User::class,
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true],
]
]
Also add the "twoFa" component:
'twoFa' => ['class' => promocat\twofa\TwoFa::class]
Next, add the TwoFaBehavior to your User model
public function behaviors() {
return [
'two_fa' => ['class' => TwoFaBehavior::class]
];
}
Usage
Congratulations, you can now, for example, call
Yii::$app->twofa->generateSecret()
or
Yii::$app->twofa->checkCode($secret, $code);
Use
promocat\models\TwoFaForm
for the 2FA activation and verification forms. Or at least let is be an example.
QR Code Widget
<?= TwoFaQr::widget([
'accountName' => $model->user->username,
'secret' => $model->secret,
'issuer' => Yii::$app->params['twoFaIssuer'],
'size' => 300
]); ?>
How to functionally implement:
See "example.php" to get started.