Răsfoiți Sursa

Update SecuritySettings, remove imagick depdency for 2FA qr code generation image

Daniel Supernault 2 ani în urmă
părinte
comite
506f95c6b1

+ 6 - 4
app/Http/Controllers/Settings/SecuritySettings.php

@@ -16,7 +16,7 @@ use Carbon\Carbon;
 use Illuminate\Http\Request;
 use Illuminate\Http\Request;
 use PragmaRX\Google2FA\Google2FA;
 use PragmaRX\Google2FA\Google2FA;
 use BaconQrCode\Renderer\ImageRenderer;
 use BaconQrCode\Renderer\ImageRenderer;
-use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
+use BaconQrCode\Renderer\Image\SvgImageBackEnd;
 use BaconQrCode\Renderer\RendererStyle\RendererStyle;
 use BaconQrCode\Renderer\RendererStyle\RendererStyle;
 use BaconQrCode\Writer;
 use BaconQrCode\Writer;
 
 
@@ -56,13 +56,15 @@ trait SecuritySettings
 		    $key,
 		    $key,
 		    500
 		    500
 		);
 		);
+
+
 		$writer = new Writer(
 		$writer = new Writer(
 			new ImageRenderer(
 			new ImageRenderer(
 				new RendererStyle(400),
 				new RendererStyle(400),
-				new ImagickImageBackEnd()
+				new SvgImageBackEnd()
 			)
 			)
 		);
 		);
-		$qrcode = base64_encode($writer->writeString($qrcode));
+		$qrcode = $writer->writeString($qrcode);
 		$user->{'2fa_secret'} = $key;
 		$user->{'2fa_secret'} = $key;
 		$user->{'2fa_backup_codes'} = json_encode($backups);
 		$user->{'2fa_backup_codes'} = json_encode($backups);
 		$user->save();
 		$user->save();
@@ -162,4 +164,4 @@ trait SecuritySettings
 			'msg' => 'Successfully removed 2fa device'
 			'msg' => 'Successfully removed 2fa device'
 		], 200);
 		], 200);
 	}
 	}
-}
+}

+ 1 - 1
resources/views/settings/security/2fa/setup.blade.php

@@ -50,7 +50,7 @@
 				  		<div class="card-body text-center">
 				  		<div class="card-body text-center">
 				  			<div class="pb-3">
 				  			<div class="pb-3">
 				  				<p class="font-weight-bold">QR Code</p>
 				  				<p class="font-weight-bold">QR Code</p>
-				  				<img src="data:image/png;base64,{{$qrcode}}" class="img-fluid" width="200px">
+				  				{!!$qrcode!!}
 				  			</div>
 				  			</div>
 				  			<div>
 				  			<div>
 				  				<p class="font-weight-bold">OTP Secret</p>
 				  				<p class="font-weight-bold">OTP Secret</p>