Laravel Programming: Cara Menggunakan Google Authenticator di Proyek Laravel

 


Postingan kali ini saya akan memberikan catatan penting untuk kalian semua yang ingin memberikan keamanan pada aplikasi kalian. Dengan google authenticator kalian bisa memproteksi login atau mungkin hal lain seperti accepting dokumen digital sebagai tanda bahwa dokumen telah diverifikasi oleh atasan. Atau mungkin kalian memiliki hal yang lebih keren lagi.

Berikut ini adalah cara untuk menggunakan google authenticator di proyek laravel kalian. Langkah mudahnya sebagai berikut:

Langkah 1: Install Package Composer

composer require pragmarx/google2fa-laravel

Langkah 2: Configurasi Package
Buka file "config/app.php" dan tambahkan provider ke dalam file.

PragmaRX\Google2FA\Vendor\Laravel\ServiceProvider::class,

Tambahkan aliases juga kedalam file:

'Google2FA' => PragmaRX\Google2FA\Vendor\Laravel\Facade::class,

Langkah 4: Menggunakan Google Authenticator
Contoh disini kita akan menggunakan google authenticator saat login. Buat controller dan kita akan beri nama LoginController dalam file LoginController masukan ini dipaling atas:

use Google2FA;

Dan buat sebuah function dengan nama fungsi sebagai berikut:

public function show2faForm()
{
    return view('auth.2fa');
}

Pada file route tambahkan rute baru seperti ini:

Route::get('/2fa', 'Auth\LoginController@show2faForm')->name('2fa.show');

Buat file blade seperti ini:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Two Factor Authentication') }}</div>

                <div class="card-body">
                    <form method="POST" action="{{ route('2fa.validate') }}">
                        @csrf

                        <div class="form-group row">
                            <label for="2fa" class="col-md-4 col-form-label text-md-right">{{ __('2FA Code') }}</label>

                            <div class="col-md-6">
                                <input id="2fa" type="text" class="form-control @error('2fa') is-invalid @enderror" name="2fa" required autocomplete="off">

                                @error('2fa')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-6 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Validate') }}
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Buat 1 route lagi untuk post:

Route::post('/2fa/validate', 'Auth\LoginController@validate2fa')->name('2fa.validate');

Tambahkan 1 fungsi lagi di LoginController untuk memproses 2fa google authenticator seperti ini:

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Google2FA;

public function validate2fa(Request $request)
{
    $validatedData = $request->validate([
        '2fa' => 'required|numeric',
    ]);

    $user = Auth::user();
    $google2fa = app('pragmarx.google2fa');
    
    if ($google2fa->verifyKey($user->google2fa_secret, $validatedData['2fa'])) {
        // Kode otentikasi dua faktor valid
        // Redirect ke halaman utama atau halaman lain yang sesuai
        return redirect()->route('home');
    } else {
        // Kode otentikasi dua faktor tidak valid
        return back()->withErrors(['2fa' => 'Invalid 2FA code']);
    }
}

Dalam contoh ini, kita menggunakan Google Authenticator untuk menambahkan otentikasi dua faktor saat login. Pastikan kalian sudah mengonfigurasi Google Authenticator sebelumnya dan menyimpan Google Authenticator Secret key dalam database ataupun file env.

Selain itu, pastikan bahwa kalian memiliki halaman otentikasi dua faktor yang sesuai dengan kebutuhan aplikasi.

Ini merupakan panduan dasar untuk mengintegrasikan Google Authenticator dengan Laravel. Pastikan untuk mengamankan kode rahasia Google Authenticator dengan baik supaya tidak disalahgunakan oleh orang yang tidak bertanggung jawab.

Please Select Embedded Mode To Show The Comment System.*

Lebih baru Lebih lama

Ads

Free Hosting

Hottest Hosting

Niagahoster-Banner