Membuat fungsi login dan logout laravel api

RoisDev - Feb 19 - - Dev Community

pertama kita membuat data seeder taruh di

seeders/databaseseeder.php

<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class DatabaseSeeder extends Seeder
{
    public function run(): void
    {
        User::factory()->create([
            'name'=> 'Muhammad Rois',
            'email'=>'admin@gmail.com',
            'password' => Hash::make('admin123')
        ]);
    }
}

Enter fullscreen mode Exit fullscreen mode

lalu jalankan perintah ini

php artisan migrate:fresh --seed
Enter fullscreen mode Exit fullscreen mode

selanjutnya kita membuat AuthController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use App\Models\User;

class AuthController extends Controller
{
    // Fungsi Login
    public function login(Request $request)
    {
        $credentials = $request->validate([
            'email' => 'required|email',
            'password' => 'required'
        ]);

        // Cek apakah email & password valid
        if (!Auth::attempt($credentials)) {
            return response()->json(['message' => 'Email atau password salah'], 401);
        }

        // Ambil user yang login
        $user = Auth::user();

        return response()->json([
            'message' => 'Login berhasil',
            'user' => $user
        ]);
    }

    // Fungsi Logout
    public function logout(Request $request)
    {
        Auth::logout();

        return response()->json(['message' => 'Logout berhasil']);
    }
}

Enter fullscreen mode Exit fullscreen mode

lalu membuat router api nya

Route::post('/login', [AuthController::class, 'login']);
Route::post('/logout', [AuthController::class, 'logout'])->middleware('auth');
Enter fullscreen mode Exit fullscreen mode
. . . . .