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_proyekJalankan Server
Setelah proyek dibuat, masuk ke direktori proyek dan jalankan server lokal:
cd nama_proyek php artisan serveProyek Anda sekarang dapat diakses di
http://localhost:8000.Buat Database
Buat database baru di MySQL dan catat nama database.
Konfigurasi .env
Buka file
.envdan 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 -mBuka file migrasi yang baru dibuat di
database/migrations/xxxx_xx_xx_xxxxxx_create_users_table.phpdan 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 migrateBuat Controller untuk Auth
Buat controller untuk registrasi dan login:
php artisan make:controller AuthControllerImplementasikan 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.phpdan 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/registerdan isi form untuk mendaftar.Login
Buka
http://localhost:8000/logindan 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.