PHP code example of laravel-liberu / laravel-two-factor
1. Go to this page and download the library: Download laravel-liberu/laravel-two-factor library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laravel-liberu / laravel-two-factor example snippets
use Emargareten\TwoFactor\TwoFactorAuthenticatable;
class User extends Authenticatable
{
use TwoFactorAuthenticatable;
}
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class TwoFactorAuthenticationController extends Controller
{
/**
* Enable two-factor authentication for the user.
*/
public function store(Request $request): RedirectResponse
{
$user = $request->user();
if ($user->hasEnabledTwoFactorAuthentication()) {
return back()->with('status', 'Two-factor authentication is already enabled');
}
$user->enableTwoFactorAuthentication();
return redirect()->route('account.two-factor-authentication.confirm.show');
}
}
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class TwoFactorAuthenticationConfirmationController extends Controller
{
/**
* Get the two-factor authentication confirmation view.
*/
public function show(Request $request): View|RedirectResponse
{
$user = $request->user();
if ($user->hasEnabledTwoFactorAuthentication()) {
return back()->with('status', 'Two-factor authentication is already enabled');
}
if (! $user->two_factor_secret) {
return back()->with('status', 'Two-factor authentication is not enabled');
}
return view('account.two-factor-confirmation.show', [
'qrCodeSvg' => $user->twoFactorQrCodeSvg(),
'setupKey' => $user->two_factor_secret,
]);
}
/**
* Confirm two-factor authentication for the user.
*/
public function store(Request $request): RedirectResponse
{
$request->validate([
'code' => ['
$user->getCurrentOtp();
/**
* Disable two-factor authentication for the user.
*/
public function destroy(Request $request): RedirectResponse
{
$request->user()->disableTwoFactorAuthentication();
return back()->with('status', 'Two-factor authentication disabled successfully');
}
use Emargareten\TwoFactor\Actions\TwoFactorRedirector;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
public function login(Request $request, TwoFactorRedirector $redirector): Response
{
// do login stuff...
return $redirector->redirect($request);
}
public function handle(TwoFactorAuthenticationChallenged $event): void
{
$event->user->notify(new CompleteSignInOTP);
}
/**
* Register any application services.
*/
public function register(): void
{
TwoFactor::challengeView('two-factor-challenge.create');
}
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class TwoFactorAuthenticationRecoveryCodeController extends Controller
{
/**
* Get the two-factor authentication recovery codes for authenticated user.
*/
public function index(Request $request): View|RedirectResponse
{
if (! $request->user()->hasEnabledTwoFactorAuthentication()) {
return back()->with('status', 'Two-factor authentication is disabled');
}
return view('two-factor-recovery-codes.index', [
'recoveryCodes' => $request->user()->two_factor_recovery_codes,
]);
}
/**
* Generate a fresh set of two-factor authentication recovery codes.
*/
public function store(Request $request): RedirectResponse
{
if (! $request->user()->hasEnabledTwoFactorAuthentication()) {
return back()->with('status', 'Two-factor authentication is disabled');
}
$request->user()->generateNewRecoveryCodes();
return redirect()->route('account.two-factor-authentication.recovery-codes.index');
}
}