validate([ 'email' => 'required|email', 'password' => 'required', ]); if (! Auth::attempt($request->only('email', 'password'))) { throw ValidationException::withMessages([ 'email' => ['The provided credentials are incorrect.'], ]); } $user = Auth::user(); $token = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'user' => $user, 'token' => $token, ]); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'Logged out successfully', ]); } public function register(RegisterRequest $request) { if (User::where('email', $request->email)->exists()) { return response()->json(['message' => 'Email already registered'], 409); } $user = User::create([ 'email' => $request->email, 'nickname' => $request->nickname, 'name' => $request->name, 'password' => bcrypt($request->password), 'photo_avatar_filename' => $request->photo, ]); $user->coins_balance = 10; $user->save(); $token = $user->createToken('auth-token')->plainTextToken; return response()->json([ 'message' => 'User registered successfully', 'user' => $user, 'token' => $token, ], 201); } }