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
Instalasi Laravel
Pastikan Anda memiliki Composer terinstal. Kemudian, buat proyek Laravel baru dengan perintah berikut:
composer create-project --prefer-dist laravel/laravel nama_proyek
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
.Buat Database
Buat database baru di MySQL dan catat nama database.
Konfigurasi .env
Buka file
.env
dan sesuaikan konfigurasi database Anda:DB_DATABASE=nama_database DB_USERNAME=root DB_PASSWORD=
Langkah-langkah Membuat Sistem Registrasi
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
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); } }
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']);
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
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); }
Buat Route untuk Login
Tambahkan route di
routes/web.php
:Route::post('/login', [AuthController::class, 'login']);
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
Registrasi
Buka
http://localhost:8000/register
dan isi form untuk mendaftar.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.