From 1cb12659a20e37fd4f7b15875585f8a1e19c7160 Mon Sep 17 00:00:00 2001 From: chris Date: Tue, 26 Nov 2024 08:01:34 +0100 Subject: [PATCH] Use Api prefixed controllers. --- app/Http/Controllers/Api/AuthController.php | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 app/Http/Controllers/Api/AuthController.php diff --git a/app/Http/Controllers/Api/AuthController.php b/app/Http/Controllers/Api/AuthController.php new file mode 100644 index 0000000..fead63b --- /dev/null +++ b/app/Http/Controllers/Api/AuthController.php @@ -0,0 +1,56 @@ +validate([ + 'name' => 'required|string', + 'email' => 'required|string|email|unique:users', + 'password' => 'required|min:8' + ]); + $user = User::create([ + 'name' => $registerUserData['name'], + 'email' => $registerUserData['email'], + 'password' => Hash::make($registerUserData['password']), + ]); + return response()->json([ + 'message' => 'User Created ', + ]); + } + + public function login(Request $request): JsonResponse + { + $loginUserData = $request->validate([ + 'email' => 'required|string|email', + 'password' => 'required|min:8' + ]); + $user = User::where('email', $loginUserData['email'])->first(); + if (!$user || !Hash::check($loginUserData['password'], $user->password)) { + return response()->json([ + 'message' => 'Invalid Credentials' + ], 401); + } + $token = $user->createToken($user->name . '-AuthToken')->plainTextToken; + return response()->json([ + 'access_token' => $token, + ]); + } + + public function logout(): JsonResponse + { + auth()->user()->tokens()->delete(); + + return response()->json([ + "message" => "logged out" + ]); + } +}