Update 2FA setup, fix qrcode handler

This commit is contained in:
Daniel Supernault 2020-12-14 22:30:44 -07:00
parent 044ad6450f
commit cd2661fc0b
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
4 changed files with 203 additions and 220 deletions

View file

@ -15,6 +15,10 @@ use DB;
use Carbon\Carbon;
use Illuminate\Http\Request;
use PragmaRX\Google2FA\Google2FA;
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
trait SecuritySettings
{
@ -43,14 +47,22 @@ trait SecuritySettings
return redirect(route('account.security'));
}
$backups = $this->generateBackupCodes();
$google2fa = new Google2FA();
//$google2fa = new Google2FA();
$google2fa = app(Google2FA::class);
$key = $google2fa->generateSecretKey(32);
$qrcode = $google2fa->getQRCodeInline(
$qrcode = $google2fa->getQRCodeUrl(
config('pixelfed.domain.app'),
$user->email,
$key,
500
);
$writer = new Writer(
new ImageRenderer(
new RendererStyle(400),
new ImagickImageBackEnd()
)
);
$qrcode = base64_encode($writer->writeString($qrcode));
$user->{'2fa_secret'} = $key;
$user->{'2fa_backup_codes'} = json_encode($backups);
$user->save();