feat: inisialisasi project kit v2
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Actions\Auth\LoginAction;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\UserResource;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* @group Authentication
|
||||
*
|
||||
* APIs for managing authentication
|
||||
*/
|
||||
class AuthController extends Controller
|
||||
{
|
||||
/**
|
||||
* Login
|
||||
*
|
||||
* Authenticate a user and return a Sanctum token.
|
||||
*
|
||||
* @unauthenticated
|
||||
*/
|
||||
public function login(Request $request, LoginAction $action): JsonResponse
|
||||
{
|
||||
$credentials = $request->validate([
|
||||
'email' => 'required|email',
|
||||
'password' => 'required',
|
||||
]);
|
||||
|
||||
$result = $action->execute($credentials);
|
||||
|
||||
return response()->json([
|
||||
'data' => new UserResource($result['user']),
|
||||
'token' => $result['token'],
|
||||
'roles' => $result['roles'],
|
||||
'permissions' => $result['permissions'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Current User
|
||||
*
|
||||
* Return the currently authenticated user's details.
|
||||
*/
|
||||
public function me(Request $request): UserResource
|
||||
{
|
||||
return new UserResource($request->user());
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout
|
||||
*
|
||||
* Revoke the current user's token.
|
||||
*/
|
||||
public function logout(Request $request): JsonResponse
|
||||
{
|
||||
$request->user()->currentAccessToken()->delete();
|
||||
|
||||
return response()->json(['message' => 'Logged out successfully']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user