1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace App\Http\Controllers;
- use Zxing\QrReader;
- use App\TwoFAccount;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Storage;
- use chillerlan\QRCode\{QRCode, QROptions};
- class QrCodeController extends Controller
- {
- /**
- * Return a QR code image
- *
- * @param App\TwoFAccount $twofaccount
- * @return \Illuminate\Http\Response
- */
- public function show(TwoFAccount $twofaccount)
- {
- $options = new QROptions([
- 'quietzoneSize' => 2,
- 'scale' => 8,
- ]);
- $qrcode = new QRCode($options);
- return response()->json(['qrcode' => $qrcode->render($twofaccount->uri)], 200);
- }
- /**
- * Decode an uploaded QR Code image
- *
- * @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
- */
- public function decode(Request $request)
- {
-
- // input validation
- $this->validate($request, [
- 'qrcode' => 'required|image',
- ]);
- // qrcode analysis
- $path = $request->file('qrcode')->store('qrcodes');
- $qrcode = new QrReader(storage_path('app/' . $path));
- $uri = urldecode($qrcode->text());
- // delete uploaded file
- Storage::delete($path);
- return response()->json(['uri' => $uri], 200);
- }
-
- }
|