rest( data: UserRepository::guestUser()->createToken(bin2hex(random_bytes(25)))->plainTextToken, code: 201 ); } /** * Register user */ public function register(AuthRegisterRequest $request): JsonResponse { UserRepository::registerUser($request)(); sendSMSVerification($request->phone_number); return response()->rest( data: [], code: 201, message: sprintf('%s: %s', __('Verification code sent to'), $request->phone_number) ); } /** * (Auth) Login */ public function login(AuthLoginRequest $request): JsonResponse { sendSMSVerification($request->phone_number); return response()->rest( data: [], code: 201, message: sprintf('%s: %s', __('Verification code sent to'), $request->phone_number) ); } /** * (Auth) Verify the code */ public function verify(AuthVerifyRequest $request): JsonResponse { $user = User::where('phone_number', $request->phone_number)->firstOr(UserRepository::registerUser($request)); return response()->rest( data: $user->createToken(bin2hex(random_bytes(20)))->plainTextToken, code: 201 ); } /** * (Auth)* Delete user * * @authenticated */ public function delete(): JsonResponse { auth()->user()->delete(); return response()->rest(); } }