namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
class AuthController extends Controller
public function register(Request $request)
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'name' => $validated['name'],
'email' => $validated['email'],
'password' => Hash::make($validated['password']),
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([
public function login(Request $request)
'email' => 'required|email',
'password' => 'required',
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
throw ValidationException::withMessages([
'email' => ['The provided credentials are incorrect.'],
$token = $user->createToken('auth-token')->plainTextToken;
return response()->json([
public function logout(Request $request)
$request->user()->currentAccessToken()->delete();
return response()->json(['message' => 'Logged out']);