(Heredado) Autorizar previamente js-preauthorize

NOTE
El contenido de esta página se proporciona únicamente con fines informativos. El uso de esta API requiere una licencia actual de Adobe. No se permite el uso no autorizado.
IMPORTANT
Asegúrese de mantenerse informado sobre los últimos anuncios de productos de autenticación de Adobe Pass y las escalas de tiempo de retirada de servicio agregadas en la página Anuncios de productos.

Información general preauth-overview

Las aplicaciones deben utilizar el método de API de preautorización para obtener decisiones de preautorización para uno o más recursos. La solicitud de API de preautorización debe utilizarse para sugerencias de interfaz de usuario o filtrado de contenido. Se debe realizar una solicitud de API de autorización real antes de permitir que el usuario tenga acceso a los recursos especificados.

En caso de que se produzca un error inesperado (por ejemplo, un problema de red y un punto de conexión de autorización de MVPD no disponible) cuando los servicios de autenticación de Adobe Pass procesen una solicitud de API preautorizada, se incluirá una o varias informaciones de error independientes para los recursos afectados como parte del resultado de la respuesta de API preautorizada.

public preauthorize(solicitud: PreauthorizeRequest, devolución de llamada: AccessEnablerCallback<any>): void preauth-method

Descripción: este método lo deben usar las aplicaciones para obtener las decisiones de autorización previa (informativas) del usuario autenticado del servicio de autenticación de Adobe Pass para ver recursos protegidos específicos, con el propósito principal de decorar la interfaz de usuario de la aplicación (por ejemplo, indicar el estado de acceso con iconos de bloqueo y desbloqueo).

Disponibilidad: v4.4.0+

Parámetros:

  • PreauthorizeRequest: objeto de generador utilizado para definir la solicitud
  • AccessEnablerCallback: la llamada de retorno se utilizó para devolver la respuesta de API
  • PreauthorizeResponse: objeto utilizado para devolver el contenido de respuesta de API

class PreauthorizeRequestBuilder preath-req-builder-class

setResources(resources: string[]): PreauthorizeRequestBuilder set-res-preath-req-buildr

  • Establece la lista de recursos para los que desea obtener decisiones de preautorización.

  • Es obligatorio establecerlo para el uso de la API preautorizada.

  • Cada elemento de la lista debe ser una cadena que represente el valor del ID de recurso o el fragmento RSS de medios que debe acordarse con MVPD.

  • Este método establece la información solamente en el contexto de la instancia de objeto PreauthorizeRequestBuilder actual, que es el receptor de esta llamada al método.

  • Para generar un(a) PreauthorizeRequest real(a), puede echar un vistazo al método de PreauthorizeRequestBuilder:

  build(): PreauthorizeRequest
  • @param {string[]} recursos. La lista de recursos para los que desea obtener decisiones de preautorización.
  • @returns {PreauthorizeRequestBuilder} La referencia a la misma instancia de objeto PreauthorizeRequestBuilder, que es el receptor de la llamada al método.
  • Esto se hace para permitir la creación del encadenamiento de métodos.

disableFeatures(…features: string[]): PreauthorizeRequestBuilder disabl-featres-preauth-req-buildr

  • Establece las funciones que desea que se deshabiliten al obtener decisiones de preautorización.
  • Esta función establece la información solamente en el contexto de la instancia de objeto PreauthorizeRequestBuilder actual, que es el receptor de esta llamada de función.
  • Para generar un(a) PreauthorizeRequest real(a), puede echar un vistazo a la función de PreauthorizeRequestBuilder:
public func build() -> PreauthorizeRequest
  • @param {string[]} características. El conjunto de funciones que desea que se deshabiliten.
  • @returns La referencia a la misma instancia de objeto PreauthorizeRequestBuilder, que es el receptor de la llamada de función.
  • Lo hace para permitir la creación de cadenas de funciones.

build(): PreauthorizeRequest preauth-req

  • Crea y recupera la referencia de una nueva instancia de objeto PreauthorizeRequest.
  • Este método crea una instancia de un nuevo objeto PreauthorizeRequest cada vez que se realiza la llamada.
  • Este método utiliza los valores establecidos de antemano en el contexto de la instancia de objeto PreauthorizeRequestBuilder actual, que es el receptor de esta llamada al método.
  • Tenga en cuenta que este método no produce ningún efecto secundario,
  • por lo tanto, no altera el estado de SDK ni el estado de la instancia de objeto PreauthorizeRequestBuilder, que es el receptor de esta llamada de método.
  • Significa que las llamadas sucesivas de este método para el mismo receptor crearán diferentes instancias de objeto PreauthorizeRequest nuevas, pero con la misma información, en caso de que los valores establecidos en PreauthorizeRequestBuilder no se hayan modificado entre las llamadas.
  • Si no necesita actualizar ninguna de la información proporcionada (recursos y almacenamiento en caché), puede reutilizar la instancia PreauthorizeRequest para varios usos de la API preautorizada.
  • @returns {PreauthorizeRequest}

interface AccessEnablerCallback<T> interface-access-enablr-callback

onResponse(resultado: T); on-response-result

  • Llamada de retorno de respuesta llamada por SDK cuando se completó la solicitud de API preautorizada.
  • El resultado es un resultado correcto o un resultado de error que contiene un estado.
  • @param {T} result

onFailure(resultado: T); on-failure-result

  • Llamada de retorno de error llamada por SDK cuando no se pudo atender la solicitud de API preautorizada.
  • El resultado es un resultado de error que contiene un estado.
  • @param {T} result

class PreauthorizeResponse preauth-response-class

estado público: estado; public-status

  • Devuelve: información adicional de estado (estado) en caso de error.
  • Puede contener un valor null.

decisiones públicas: decisión[]; public-decisions

  • Devuelve: la lista de decisiones de preautorización. Una decisión para cada recurso.
  • La lista puede estar vacía en caso de error.

Estado de clase class-status

estatus público: número; public-status-numbr

  • El código de estado de respuesta HTTP tal como se documenta en RFC 7231.
  • Podría ser 0 si Status procede de SDK en lugar de los servicios de autenticación de Adobe Pass.

código público: número; public-code-numbr

  • El código de error estándar de los servicios de autenticación de Adobe Pass.
  • Puede contener una cadena vacía o un valor null.

public message: string; public-msg-string

  • El mensaje detallado que, en algunos casos, proporcionan los puntos finales de autorización de MVPD o las reglas de degradación del programador.
  • Puede contener una cadena vacía o un valor null.

public details: string; public-details-strng

  • Contiene un mensaje detallado que, en algunos casos, proporcionan los extremos de autorización de MVPD o las reglas de degradación del programador.
  • Puede contener una cadena vacía o un valor null.

public helpUrl: string; public-help-url-string

  • La dirección URL que vincula a más información sobre por qué se produjo este estado/error y posibles soluciones.
  • Puede contener una cadena vacía o un valor null.

public trace: string; public-trace-string

  • El identificador único de esta respuesta, que se puede utilizar al ponerse en contacto con el servicio de asistencia para identificar problemas específicos en situaciones más complejas.
  • Puede contener una cadena vacía o un valor null.

public action: string; public-action-string

  • La acción recomendada para remediar la situación.

    • ninguno: Lamentablemente no hay ninguna acción predefinida para remediar este problema. Esto podría indicar una invocación incorrecta de la API pública
    • configuración: se necesita un cambio de configuración a través del panel de TVE o poniéndose en contacto con el soporte técnico.
    • application-registration: la aplicación debe registrarse de nuevo.
    • autenticación: el usuario debe autenticarse o volver a autenticarse.
    • authorization: el usuario debe obtener autorización para el recurso específico.
    • degradación: se debe aplicar alguna forma de degradación.
    • reintentar: si se reintenta la solicitud, el problema podría resolverse
    • reintentar-después: si se reintenta la solicitud después del período de tiempo indicado, el problema podría resolverse.
  • Puede contener una cadena vacía o un valor null.

decisión colectiva class-decision

id pública: string; public-id-string

  • El ID de recurso para el que se obtuvo la decisión.

public authorized: boolean; public-auth-boolean

  • El valor del indicador que indica si la decisión se ha realizado correctamente o no.

error público: Estado; public-error-status

  • Información adicional de estado (estado) en caso de que se haya producido algún error. Puede contener un valor null.

Ejemplo de implementación de cliente client-imp-example

let accessEnablerApi = new window.AccessEnabler.AccessEnabler("software statement");
let accessEnablerModels = window.AccessEnabler.models;

// Build request
let requestBuilder = new accessEnablerModels.PreauthorizeRequest.getBuilder();
let request = requestBuilder
    .setResources(["RES01", "RES02", "RES03"])
    .disableFeatures("LOCAL_CACHE")
    .build();

// Create callback
let callback = {
    onResponse(response) {
        // Handle onResponse
    },
    onFailure(response) {
        // Handle onFailure
    }
};

// Invoke call
accessEnablerApi.preauthorize(request, callback);

Ejemplos de escenarios scenario-examples

Escenario 1: se autorizaron todos los recursos solicitados all-req-res-auth

Escenario 2: se autorizaron algunos recursos solicitados. sm-req-res-auth

Indicador de código de error mejorado
Respuesta
Desactivado
code language-javascript
        {
    "decisions": [
        {
        "id": "RES01",
        "authorized": true
        },
        {
        "id": "RES02",
        "authorized": true
        },
        {
        "id": "RES03",
        "authorized": true
        }
    ]
    }

Escenario 3: no se autorizó ninguno de los recursos solicitados. none-req-res-auth

Indicador de código de error mejorado
Respuesta
Desactivado
code language-javascript
        {
    "decisions": [
        {
        "id": "RES01",
        "authorized": true
        },
        {
        "id": "RES02",
        "authorized": false
        },
        {
        "id": "RES03",
        "authorized": true
        }
    ]
    }

Habilitado
code language-javascript
    {
      "decisions": [
        {
        "id": "RES01",
        "authorized": true
        },
        {
        "id": "RES02",
        "authorized": false,
        "error": {
            "status": 403,
            "code": "preauthorization_denied_by_mvpd",
            "message": "The MVPD has returned a \"Deny\" decision when requesting pre-authorization for the specified resource.",
            "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
            "action": "none"
        }
        },
        {
        "id": "RES03",
        "authorized": true
        },
    ]
    }

Escenario 4: solicitud de cliente incorrecta; no se especificaron recursos. bad-cl-req-no-res-sp

Indicador de código de error mejorado
Respuesta
Desactivado
code language-javascript
        {
    "decisions": [
        {
        "id": "RES01",
        "authorized": false
        },
        {
        "id": "RES02",
        "authorized": false
        },
        {
        "id": "RES03",
        "authorized": false
        }
    ]
    }

Habilitado
code language-javascript
    {
    "decisions": [
        {
        "id": "RES01",
        "authorized": false,
        "error": {
            "status": 403,
            "code": "preauthorization_denied_by_mvpd",
            "message": "The MVPD has returned a \"Deny\" decision when requesting pre-authorization for the specified resource.",
            "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
            "action": "none"
            }
        },
        {
            "id": "RES02",
            "authorized": false,
            "error": {
                "status": 403,
                "code": "preauthorization_denied_by_mvpd",
                "message": "The MVPD has returned a \"Deny\" decision when requesting pre-authorization for the specified resource.",
                "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
                "action": "none"
            }
        },
        {
        "id": "RES03",
        "authorized": false,
        "error": {
            "status": 403,
            "code": "maximum_execution_time_exceeded",
            "message": "The request did not complete in the maximum allowed time. Retrying the request might solve the issue.",
            "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
            "action": "retry"
                }
            }
        ]
    }

Indicador de código de error mejorado
Respuesta
Desactivado/Habilitado
code language-javascript
    {
    "status": {
    "status": 400,
    "code": "internal_error",
    "message": "The request failed due to an internal error.",
    "details": "Required String[] parameter 'resource' is not present",
    "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
    "action": "none"
    },
    "decisions": []
    }

Escenario 5: solicitud de cliente incorrecta; recursos vacíos especificados. bad-cl-req-empt-res-sp

Indicador de código de error mejorado
Respuesta
Desactivado/Habilitado
code language-javascript
    {
    "status": {
    "status": 412,
    "code": "missing_resource",
    "message": "The resource parameter is missing",
    "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
    "action": "none"
    },
    "decisions": []
    }

Escenario 6: error de red. ntwrk-error

Indicador de código de error mejorado
Respuesta
Habilitado
code language-javascript
    {
    "decisions": [
        {
        "id": "RES01",
        "authorized": false,
        "error": {
            "status": 403,
            "code": "network_received_error",
            "message": "There was a read error while retrieving the response from the associated partner service. Retrying the request might solve the issue.",
            "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
            "action": "retry"
            }
        },
        {
            "id": "RES02",
            "authorized": false,
            "error": {
                "status": 403,
                "code": "network_received_error",
                "message": "There was a read error while retrieving the response from the associated partner service. Retrying the request might solve the issue.",
                "helpUrl": "https://experienceleague.adobe.com/docs/primetime/authentication/home.html?lang=es",
                "action": "retry"
                }
        }
    ]
    }

Escenario 7: se invocó un flujo de preautorización sin una sesión de AuthN válida.

Indicador de código de error mejorado
Respuesta
Desactivado/Habilitado
code language-javascript
    {
    "status": {
    "status": 0,
    "code": "authentication_session_missing",
    "message": "The authentication session associated with this request could not be retrieved. The user must re-authenticate with a supported MVPD in order to continue.",
    "action": "authentication"
    },
    "decisions": []
    }

Escenario 8: se invocó el flujo de preautorización antes de completar la llamada a setRequestor

Indicador de código de error mejorado
Respuesta
Desactivado/Habilitado
code language-javascript
    {
    "status": {
    "status": 0,
    "code": "requestor_not_configured",
    "message": "The requestor is not yet configured which is a prerequisite for using any API apart from the setRequestor API.",
    "action": "retry"
    },
    "decisions": []
    }
recommendation-more-help
pass-help-authentication