Laravel Tips: Login Dengan Mudah Pada Saat Pengembangan

Published on 09 July

Terkadang kita perlu meloginkan beberapa kredensial untuk melihat hasil yang kita telah kembangkan untuk melihat hasil yang berbeda-beda. Dan sudah pasti kita membutuhkan cara yang cepat selain kita harus login kemudian logout untuk memasukkan user baru. Cara lain mungkin Anda akan menggunakan yang nama nya versi incognito, tapi jika Anda cara lebih cepat, mengapa tidak?

Untuk memulai nya, pastikan Anda sudah mempunyai beberapa user di dalam database, sehingga Anda bisa mengganti user mana saja yang ingin loginkan. Jika Anda tidak punya, Anda bisa buka terminal, dan jalankan tinker untuk menggenerasi user lewat factory seperti berikut:

php artisan tinker

Kemudian jalankan buat 10 user dengan factory dengan menjalankan perintah berikut:

>>> User::factory(10)->create();

Jika sudah, sekarang Anda bisa file app/Providers/RouteServiceProvider.php, dan harusnya yang Anda lihat untuk saat ini pada metode boot kurang lebih seperti berikut:

public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::middleware('api')->prefix('api')->group(base_path('routes/api.php'));
        Route::middleware('web')->group(base_path('routes/web.php'));
    });
}

Anda bisa menambahkan 1 route group tepat di bawah web tersebut untuk development mode seperti:

public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::middleware('api')->prefix('api')->group(base_path('routes/api.php'));
        Route::middleware('web')->group(base_path('routes/web.php'));

        if (!app()->isProduction()) {
            Route::middleware('web')->prefix('dev')->group(base_path('routes/dev.php'));
        }
    });
}

Perhatikan baik-baik, disini kita buat !app()->isProduction() untuk memastikan bahwa route ini akan jalan apabila kita sedang dalam local environment (APP_ENV=local). Dan karena disini kita menggunakan prefix dev, itu artinya kita akan mengunjungi setiap route yang kita buat nanti dalam file dev.php harus dimulai dengan /dev/*. Setelah itu, Anda bisa buat 1 file dengan nama dev.php di dalam folder routes. Buka file nya dan masukkan route seperti berikut ini.

use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use App\Providers\RouteServiceProvider;

Route::get('/login/{id}', function ($id = null) {
    Auth::login(User::find($id));
    return redirect(RouteServiceProvider::HOME);
});

Setelah itu, maka sekarang Anda bisa buka browser untuk meloginkan para pengguna dari id nya yang ada di dalam database dengan mengunjungi uri seperti /dev/login/4.

Semoga bermanfaat, dan mudah-mudahan kerja kita jauh lebih cepat dari pada sebelumnya. Thank you for reading, until next time. 👋🏻