def METHOD_NAME(self) -> LTIUser:
    """
    Return the LTIUser authenticated by the request's state param.
    Return the models.LTIUser authenticated by the current
    request's ``state`` query parameter.
    :raise MissingStateParamError: if the request has no ``state`` query
        parameter
    :raise ExpiredStateParamError: if the request's ``state`` param has
        expired
    :raise InvalidStateParamError: if the request's ``state`` param is
        invalid
    :rtype: str
    """
    request = self.context["request"]
    try:
        state = request.params["state"]
    except KeyError as err:
        raise MissingStateParamError() from err
    decoded_user = self._decode_state(state)["user"]
    return self._lti_user_service.deserialize(**decoded_user)