Laravel Google 2fa QR-код не отображается - PullRequest
1 голос
/ 19 марта 2020

В настоящее время я использую пакет для Google 2fa и извлекаю QR-код SVG в виде строковой переменной из моего контроллера, а затем требуется в соответствии с пакетом добавить QR-код как. Проблема в том, что это не отображает изображение, и я думаю, что это связано со строковым значением, которое я извлекаю из моего контроллера.

Это значение переменной, которую я получаю от моего контроллера:

enter image description here

Повторяя это в моем блейд-файле, он просто повторяет строковое значение. Если бы я скопировал это строковое значение без "", Laravel распознал бы значение как html и отобразил мой QR-код. Есть ли способ отразить это, чтобы blade-сервер распознал его как html код? Или как я могу go показать этот SVG-файл в моем блейд-файле, когда извлекаю его как переменную таким образом? Пожалуйста, если кто-нибудь поможет мне, будет очень признателен!

Ссылка на пакет Laravel -> https://github.com/antonioribeiro/google2fa-laravel

Мой контроллер:

public function register(Request $request)
    {
        //Validate the incoming request using the already included validator method
        $this->validator($request->all())->validate();

        // Initialise the 2FA class
        $google2fa = app('pragmarx.google2fa');

        // Save the registration data in an array
        $registration_data = $request->all();

        // Add the secret key to the registration data
        $registration_data["google2fa_secret"] = $google2fa->generateSecretKey();

        // Save the registration data to the user session for just the next request
        $request->session()->flash('registration_data', $registration_data);

        // Generate the QR image. This is the image the user will scan with their app
        // to set up two factor authentication
        $QR_Image = $google2fa->getQRCodeInline(
            config('app.name'),
            $registration_data['email'],
            $registration_data['google2fa_secret']
        );

        // Pass the QR barcode image to our view
        return view('google2fa.register', ['QR_Image' => $QR_Image, 'secret' => $registration_data['google2fa_secret']]);
    }

My View:

<div>
     <img src="{{ $QR_Image }}">
</div>

1 Ответ

0 голосов
/ 19 марта 2020

Это должно быть довольно просто:

<div>
     {!! $QR_Image !!}
</div>

Вам необходим {!! !!} для рендеринга данных HTML / SVG без их выхода. И вам нужно удалить теги img, так как это не реальное изображение, а SVG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...