invoiceninja/app/Http/Controllers/TwoFactorController.php

52 lines
1.2 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use PragmaRX\Google2FA\Google2FA;
use Crypt;
2017-11-02 10:43:36 +02:00
class TwoFactorController extends Controller
{
2017-11-02 10:43:36 +02:00
public function setupTwoFactor()
{
$user = auth()->user();
2017-11-02 10:43:36 +02:00
if ($user->google_2fa_secret || ! $user->phone) {
return redirect('/settings/user_details');
}
$google2fa = new Google2FA();
$secret = $google2fa->generateSecretKey();
2017-11-02 10:43:36 +02:00
session(['2fa:secret' => $secret]);
$qrCode = $google2fa->getQRCodeGoogleUrl(
APP_NAME,
$user->email,
$secret
);
$data = [
'secret' => $secret,
'qrCode' => $qrCode,
];
return view('users.two_factor', $data);
}
2017-11-02 10:43:36 +02:00
public function enableTwoFactor()
{
$user = auth()->user();
$secret = session()->pull('2fa:secret');
if ($secret && ! $user->google_2fa_secret && $user->phone) {
$user->google_2fa_secret = Crypt::encrypt($secret);
$user->save();
session()->flash('message', trans('texts.enabled_two_factor'));
}
return redirect('settings/user_details');
}
}