validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'username' => 'required|string|max:255|unique:users', 'password' => 'required|string|min:8', ]); $user = User::create([ 'name' => $validatedData['name'], 'email' => $validatedData['email'], 'username' => $validatedData['username'], 'password' => Hash::make($validatedData['password']), ]); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', 'user' => $user ]); } public function login(Request $request) { //TODO: https://stackoverflow.com/a/73980629 if (!Auth::attempt($request->only('username', 'password'))) { return response()->json([ 'message' => 'Invalid login details' ], 401); } $user = User::where('username', $request['username'])->firstOrFail(); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ]); } public function logout(Request $request) { //TODO: https://stackoverflow.com/a/73980629 auth('web')->logout(); return; } public function me(Request $request) { return $request->user(); } }