validate([ 'name' => 'required|max:100', 'email' => 'required|unique:users|max:100', 'phone' => 'required|max:25', 'password' => 'required' ]); $validated['password'] = Hash::make($validated['password']); $user = User::create($validated); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'user' => $user ], 201); } public function login(Request $request) { $validated = $request->validate([ 'email' => 'required', 'password' => 'required', ]); $user = User::where('email', $validated['email'])->first(); if (!$user) { return response()->json([ 'message' => 'user not found', ], 401); } if (!Hash::check($validated['password'], $user->password)) { return response()->json([ 'message' => 'invalid password' ], 401); } $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'user' => $user, ], 200); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Logout Success', ], 200); } public function updateFcmId(Request $request) { // Validate the request... $validated = $request->validate([ 'fcm_id' => 'required', ]); $user = $request->user(); $user->fcm_id = $validated['fcm_id']; $user->save(); return response()->json([ 'message' => 'FCM ID updated', ], 200); } }