Files
services_core/app/Http/Controllers/AuthController.php
T
2026-06-16 23:58:35 +07:00

66 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use OpenApi\Attributes as OA;
class AuthController extends Controller
{
#[OA\Post(
path: "/api/login",
summary: "Login User",
tags: ["Authentication"]
)]
#[OA\RequestBody(
required: true,
content: new OA\JsonContent(
required: ["email", "password"],
properties: [
new OA\Property(
property: "email",
type: "string",
example: "admin@test.com"
),
new OA\Property(
property: "password",
type: "string",
example: "123456"
)
]
)
)]
#[OA\Response(
response: 200,
description: "Login Success"
)]
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required'
]);
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response()->json([
'success' => false,
'message' => 'Email atau password salah'
], 401);
}
$token = $user->createToken('services-core')->plainTextToken;
return response()->json([
'success' => true,
'token' => $token,
'user' => $user
]);
}
}