Cara Membuat Authentication Log di Laravel 8

Cara Membuat Authentication Log di Laravel 8

Admin
Admin・ 9 Oktober 2021
7 min read ・ 11096 views

Laravel Authentication Log - Di artikel kali ini, saya akan share cara membuat authentication log di laravel 8 yang berfungsi untuk mentracking atau melihat riwayat authentication seperti login atau logout. Untuk membuat authentication di laravel 8, kita bisa menggunakan authentication log package dari Anthony Rappa. Dengan package tersebut, kita bisa tracking informasi authentication seperti waktu login atau logout, IP, browser, location dan lain-lain. Selain itu, package ini bisa mengirim notification melalui email, slack atau sms saat ada aktivitas login di device baru atau saat ada activitas gagal login. 

Step 1: Install Laravel

//via Laravel Installer
composer global require laravel/installer
laravel new laravel-authentication-log

//via Composer
composer create-project laravel/laravel laravel-authentication-log

Pada langkah yang pertama ini, kita perlu menginstall laravel versi terbaru (saat ini versi 8) yang akan kita coba untuk implementasi membuat authentication log di laravel 8. Untuk installasi laravel bisa menggunakan laravel installer atau menggunakan composer seperti contoh di atas.

Silahkan memilih salah satu cara yang ingin digunakan untuk installasi laravel. Dari kedua contoh perintah installasi laravel di atas, akan sama-sama menghasilkan atau generate laravel project dengan nama laravel-authentication-log.

Step 2: Setup Database

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_authentication_log
DB_USERNAME=root
DB_PASSWORD=

Selanjutnya, buat database baru untuk menyimpan data-data sample yang akan kita gunakan pada percobaan ini. Jika kamu menggunakan xampp sebagai local development, silahkan buat database baru di localhost/phpmyadmin. Disini saya beri contoh, saya membuat database baru dengan nama laravel_authentication_log. Kemudian jangan lupa juga untuk menyesuaikan DB_DATABASE pada file .env seperti pada contoh di atas. Dan kemudian jalankan perintah php artisan migrate, untuk memigrasi semua file migration ke database.

Step 3: Install Laravel UI Package

composer require laravel/ui
php artisan ui bootstrap --auth
npm install && npm run dev

Tentunya kita juga memerlukan fitur authentication yang nantinya setiap dari aktivitasnya seperti login atau logout akan tercatat sebagai log. Nah, untuk membuat fitur authentication di laravel 8, disini saya akan memakai laravel ui package. Untuk installasi laravel ui package, bisa menggunakan perintah-perintah seperti di atas secara berurutan.

Step 4: Install Laravel Authentication Log Package

composer require rappasoft/laravel-authentication-log

Tiba di step topik utama, disini kita akan menginstall authentication log package menggunakan perintah seperti di atas.

composer require torann/geoip

Jika ingin menggunakan fitur location, kita harus install geo ip package dengan perintah seperti di atas.

php artisan vendor:publish --provider="Rappasoft\LaravelAuthenticationLog\LaravelAuthenticationLogServiceProvider" --tag="authentication-log-migrations"
php artisan migrate

Publish file migration dan jalankan migrate dengan perintah artisan seperti di atas.

php artisan vendor:publish --provider="Rappasoft\LaravelAuthenticationLog\LaravelAuthenticationLogServiceProvider" --tag="authentication-log-config"

Kemudian, publish file config dengan menjalankan perintah seperti di atas.

php artisan vendor:publish --provider="Torann\GeoIP\GeoIPServiceProvider" --tag=config

Jika kamu menginstall Geo IP, mungkin kamu juga perlu publish file config menggunakan perintah seperti di atas.

Step 5: Configuration

use Illuminate\Notifications\Notifiable;
use Rappasoft\LaravelAuthenticationLog\Traits\AuthenticationLoggable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable, AuthenticationLoggable;
} 

Buka file app/Models/User.php. Di file ini, kita perlu menambahkan trait AuthenticationLoggable untuk tracking activitas authentication.

Step 6: Setup View

Di step terakhir, kita perlu setup view untuk halaman home. Di halaman home nanti, akan ditambahkan table yang berisikan detail aktivitas authentication dari user tersebut.

resources/views/home.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-10">
            <div class="card">
                <div class="card-header">Laravel 8: Authentication Log</div>
                <div class="card-body">
                    <table class="table">
                        <thead>
                          <tr>
                            <th scope="col">#</th>
                            <th scope="col">IP Address</th>
                            <th scope="col">Location</th>
                            <th scope="col">Login at</th>
                            <th scope="col">Login Successfully</th>
                            <th scope="col">Logout at</th>
                          </tr>
                        </thead>
                        <tbody>
                            @foreach ($users as $key => $item)
                            <tr>
                                <th scope="row">{{ ++$key }}</th>
                                <td>{{ $item['ip_address'] }}</td>
                                <td>{{ $item->location['city'] }}</td>
                                <td>{{ Carbon\Carbon::parse($item['login_at'])->isoFormat('D MMMM YYYY h:mm A') }}</td>
                                <td>{{ $item['login_successful']  === true ? 'Yes' : 'No' }}</td>
                                <td>{{ $item['logout_at'] === NULL ? '-' : Carbon\Carbon::parse($item->logout_at)->isoFormat('D MMMM YYYY h:mm A') }}</td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Oke. Buka file yang ada di resources/views/home.blade.php, kemudian ubah atau sesuaikan kode yang ada menjadi seperti kode di atas. Dengan kode seperti di atas, kita akan menampilkan detail dari aktivitas authentication seperti ip address, location, waktu login, status login dan waktu log out.

Step 7: Testing

Setelah melalui step by step membuat authentication log di laravel 8, sekarang waktunya pengujian. Jalankan laravel project dengan perintah php artisan serve, lalu buka pada browser. Kemudian cobalah untuk register user baru.

This cache store does not support tagging.

 Jika setelah setelah submit register muncul error seperti di atas, coba lakukan hal ini.

Buka file .env, cari record seperti di bawah ini.

CACHE_DRIVER=file

lalu ubah menjadi

CACHE_DRIVER=array

Setelah mengubahnya, mungkin kamu juga perlu menjalankan perintah php artisan config:clear.

php artisan config:clear

Jika setelah berhasil register user, coba logout lalu cobalah untuk login lagi.

laravel authentication log

Data yang akan masuk ke table authentication_log kurang lebih akan seperti gambar di atas.

laravel 8 authentication log

Dan tampilan halaman home kurang lebih akan menjadi seperti gambar di atas.

Sekian artikel kali ini, jika kamu punya cara lain untuk membuat authentication log di laravel, kamu bisa share juga di form komentar di bawah ini. Semoga artikel ini dapat membantu, sampai jumpa di artikel berikutnya dan Happy Coding. 👨‍💻 🚀

 

🚀 Explore: Laravel Authentication Log

Tinggalkan Komentar
Loading Comments