Blog

Mencatat Waktu Terakhir Login dan IP User Dengan Laravel

 

Mencatat Waktu Terakhir Login dan IP User Dengan Laravel

Laravel     5 bulan yang lalu


Secara default Laravel Auth dilengkapi dengan tabel dan model Pengguna, tetapi tanpa kemampuan logging, jadi kita perlu membangunnya sendiri. Untungnya, ini sangat mudah, saya akan menunjukkan kepada Anda satu metode.

Dalam kasus ini, anggap saja kita ingin menyimpan waktu masuk dan alamat IP pengguna terakhir di tabel pengguna yang sama.

Jadi kita mulai dengan migrasi basis data:

php artisan make:migration add_login_fields_to_users_table

Kemudian lengkapi field seperti berikut:

class AddLoginFieldsToUsersTable extends Migration
{
 
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->datetime('last_login_at')->nullable();
            $table->string('last_login_ip')->nullable();
        });
    }
 
    // ...

Selanjutnya, kita perlu mendaftarkan kedua field yang kita tambahkan ke Model User.php supaya bisa di isi:

class User extends Authenticatable
{
    protected $fillable = [
        'email',
        'password',
        'name',
        'last_login_at',
        'last_login_ip',
    ];
 
    // ...

Lalu, bagaimana kita mengisinya? Anda perlu tahu bahwa ada metode authenticated() dalam sifat AuthenticatesUsers. Ini disebut setiap kali seseorang masuk.

/**
 * The user has been authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  mixed  $user
 * @return mixed
 */
protected function authenticated(Request $request, $user)
{
    //
}

Dalam sifatnya metode ini kosong. Jadi kami memiliki kebebasan untuk menimpanya di LoginController dan menambahkan kode apa pun yang kami butuhkan.

app/Http/Controllers/Auth/LoginController.php:

function authenticated(Request $request, $user)
{
    $user->update([
        'last_login_at' => Carbon::now()->toDateTimeString(),
        'last_login_ip' => $request->getClientIp()
    ]);
}

Jika proses ini berhasil maka akan otomatis terisi kapan terakhir login dan juga IP dari user yang login.

last_login_at dan juga last_login_ip akan otomatis terisi dan update saat user tersebut melakukannya.


CARI ARTIKEL
Card image cap
AUTHOR: Wisnu

"Client-facing" person. His goal - help clients/projects succeed and always coding.


Lihat Project Kami | Bertemu Tim Kami

Tertarik berkerja dengan kami? Email disini:
wisnu@tipa.co.id