I want to programmatically log in a user with a custom controller. I want to pass my data with `$_POST` to the route (I pass data from a mobile application); if username and password are correct, the method/function should return `TRUE`.

The route is the following one.

    tcdev.login:
      path: '/tclogin'
      defaults:
        _controller: 'Drupal\tcdev\Controller\MYCenterController::login'
        _title: 'Login call back'
      requirements:
        _permission: 'access content'

The code for the controller is the following one.    

    namespace  Drupal\tcdev\Controller;
    
    use Drupal\Core\Controller\ControllerBase;
    use Symfony\Component\DependencyInjection\ContainerInterface;
    
    class MyController extends ControllerBase {
    
        /**
         * \Drupal\user\UserAuth definition.
         *
         * @var \Drupal\user\UserAuth
         */
        protected $userAuth;
    
        /**
         * {@inheritdoc}
         */
        public function __construct(UserAuth $user_auth) {
            $this->userAuth = $user_auth;
        }
    
        /**
         * {@inheritdoc}
         */
        public static function create(ContainerInterface $container) {
            return new static($container->get('user.auth'));
        }
        }
    
        public function login() {
            $uid = $this->userAuth->authenticate($_POST['user'], $_POST['pass']);
            $acc = User::load($uid);
    
            //return new Response('Hi ' . $uid);
        }
    
    }


It returns me the following error:
> TypeError: Argument 1 passed to `Drupal\tcdev\Controller\MyController::__construct()` must be an instance of `Drupal\tcdev\Controller\UserAuth`, instance of `Drupal\user\UserAuth` given, called in /Users/yms/Sites/devdesktop/gttc/modules/tcdev/src/Controller/MyController.php on line 32 in `Drupal\tcdev\Controller\MyController::__construct()` (line 23 of modules/tcdev/src/Controller/MyController.php)

Where is my mistake?