validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|confirmed|min:6', 'password_confirmation' => 'required|confirmed|min:6', ]); $user = User::create([ 'name' => $fields['name'], 'email' => $fields['email'], 'password' => Hash::make($fields['password']), ]); $token = $user->createToken('api-token')->plainTextToken; return response()->json([ 'user' => $user, 'token' => $token, ], 201); } public function login(Request $request) { $fields = $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $fields['email'])->first(); if (! $user || ! Hash::check($fields['password'], $user->password)) { return response()->json(['message' => 'Invalid credentials'], 401); } $token = $user->createToken('api-token')->plainTextToken; return response()->json([ 'user' => $user, 'token' => $token, ], 200); } }