Membuat sistem login dan registrasi


Dalam tutorial ini, kita akan membahas langkah-langkah untuk membuat sistem login dan registrasi menggunakan Laravel. Mari kita mulai!

Persiapan

  1. Instalasi Laravel

    Pastikan Anda memiliki Composer terinstal. Kemudian, buat proyek Laravel baru dengan perintah berikut:

    composer create-project --prefer-dist laravel/laravel nama_proyek
  2. Jalankan Server

    Setelah proyek dibuat, masuk ke direktori proyek dan jalankan server lokal:

    cd nama_proyek
    php artisan serve

    Proyek Anda sekarang dapat diakses di http://localhost:8000.

  3. Buat Database

    Buat database baru di MySQL dan catat nama database.

  4. Konfigurasi .env

    Buka file .env dan sesuaikan konfigurasi database Anda:

    DB_DATABASE=nama_database
    DB_USERNAME=root
    DB_PASSWORD=

Langkah-langkah Membuat Sistem Registrasi

  1. Buat Model dan Migrations untuk Users

    Jalankan perintah berikut untuk membuat model dan migrasi untuk tabel users:

    php artisan make:model User -m

    Buka file migrasi yang baru dibuat di database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.php dan tambahkan kolom yang diperlukan:

    public function up()
    {
       Schema::create('users', function (Blueprint $table) {
           $table->id();
           $table->string('name');
           $table->string('email')->unique();
           $table->string('password');
           $table->timestamps();
       });
    }

    Jalankan migrasi:

    php artisan migrate
  2. Buat Controller untuk Auth

    Buat controller untuk registrasi dan login:

    php artisan make:controller AuthController

    Implementasikan fungsi registrasi di AuthController:

    use App\Models\User;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Hash;
    
    class AuthController extends Controller
    {
       public function register(Request $request)
       {
           $request->validate([
               'name' => 'required|string|max:255',
               'email' => 'required|string|email|max:255|unique:users',
               'password' => 'required|string|min:8|confirmed',
           ]);
    
           $user = User::create([
               'name' => $request->name,
               'email' => $request->email,
               'password' => Hash::make($request->password),
           ]);
    
           return response()->json($user, 201);
       }
    }
  3. Buat Route untuk Registrasi

    Buka file routes/web.php dan tambahkan route untuk registrasi:

    use App\Http\Controllers\AuthController;
    
    Route::post('/register', [AuthController::class, 'register']);
  4. Buat Form Registrasi

    Buat file view resources/views/register.blade.php:

    <form action="/register" method="POST">
       @csrf
       <input type="text" name="name" placeholder="Name" required>
       <input type="email" name="email" placeholder="Email" required>
       <input type="password" name="password" placeholder="Password" required>
       <input type="password" name="password_confirmation" placeholder="Confirm Password" required>
       <button type="submit">Register</button>
    </form>

Langkah-langkah Membuat Sistem Login

  1. Tambahkan Fungsi Login di Controller

    Di dalam AuthController, tambahkan fungsi login:

    public function login(Request $request)
    {
       $request->validate([
           'email' => 'required|string|email',
           'password' => 'required|string',
       ]);
    
       $user = User::where('email', $request->email)->first();
    
       if (!$user || !Hash::check($request->password, $user->password)) {
           return response()->json(['message' => 'Invalid credentials'], 401);
       }
    
       return response()->json($user, 200);
    }
  2. Buat Route untuk Login

    Tambahkan route di routes/web.php:

    Route::post('/login', [AuthController::class, 'login']);
  3. Buat Form Login

    Buat file view resources/views/login.blade.php:

    <form action="/login" method="POST">
       @csrf
       <input type="email" name="email" placeholder="Email" required>
       <input type="password" name="password" placeholder="Password" required>
       <button type="submit">Login</button>
    </form>

Pengujian

  1. Registrasi

    Buka http://localhost:8000/register dan isi form untuk mendaftar.

  2. Login

    Buka http://localhost:8000/login dan masukkan email serta password yang telah terdaftar.

Kesimpulan

Anda telah berhasil membuat sistem login dan registrasi sederhana menggunakan Laravel. Anda dapat mengembangkan fitur ini lebih lanjut dengan menambahkan validasi yang lebih kuat, middleware untuk mengamankan route, atau menggunakan token JWT untuk autentikasi.