Pregunta:
¿Cómo se pueden evitar los errores 401 relacionados con la ausencia de licencias gratuitas al utilizar la API de DocuWare?
Respuesta:
En general, hay dos opciones: utilizar cookies para mantener viva la sesión o utilizar tokens para reutilizar la sesión anterior. El proceso para hacerlo se describe a continuación.
En general, hay dos opciones: utilizar cookies para mantener viva la sesión o utilizar tokens para reutilizar la sesión anterior. El proceso para hacerlo se describe a continuación.
Autenticación:
Antes de poder utilizar la cookie/token se requiere una sesión inicial. Por lo tanto, la aplicación tiene que iniciar sesión en DocuWare. Para ello, envíe una solicitud post con los datos de autenticación al endpoint/Account/Login. La respuesta contendrá al menos las dos cookies siguientes: .DWPLATFORMAUTH y DWPLATFORMBROWSERID.
Cierre de sesión:
Cuando se realiza un cierre de sesión a través del endpoint /Account/LogOff, se cerrará la sesión del usuario en DocuWare. La cookie de sesión actual dejará de ser válida y no podrá utilizarse posteriormente. Esto significa que debe crearse una nueva sesión. Si se produce otro intento de inicio de sesión en el plazo de dos minutos y no hay ninguna licencia libre disponible, se devolverá un código de estado HTTP 401 con el mensaje "Ninguna de las licencias registradas está disponible para el cliente [nombre de usuario]".
Evite la respuesta 401:
Se puede utilizar cualquiera de las siguientes opciones para evitar el código de estado 401 descrito anteriormente.
Mantenga viva la sesión mediante cookies:
Después del inicio de sesión, almacene la cookie .DWPLATFORMAUTH en un contenedor de cookies. Ahora, la cookie del contenedor de cookies se puede utilizar en todas las solicitudes siguientes a la API de DocuWare. Mientras no se cierre la sesión, la aplicación podrá utilizar la sesión anterior sin tener que volver a autenticarse y sólo utilizará una licencia de cliente. Utilice este método si la aplicación envía solicitudes a la API de DocuWare en un intervalo de tiempo irregular. La duración de la cookie es de 20 años y debería funcionar siempre que no se cierre la sesión.
Reconexión en dos minutos con un token:
A veces es necesario volver a conectarse a la API de DocuWare en los dos minutos siguientes a la llamada al punto final /Account/LogOff. Para evitar el error 401, se puede utilizar un token, en lugar de mantener viva la sesión mediante la cookie. El token puede crearse antes del cierre de sesión llamando al endpoint /Organizations/LoginToken a través del método post. Esta llamada requiere un cuerpo en el que se especifique el producto de destino, el uso (Multi, Single) y el tiempo de vida. Eche un vistazo al siguiente ejemplo de cuerpo JSON para crear un token:
Cierre de sesión:
Cuando se realiza un cierre de sesión a través del endpoint /Account/LogOff, se cerrará la sesión del usuario en DocuWare. La cookie de sesión actual dejará de ser válida y no podrá utilizarse posteriormente. Esto significa que debe crearse una nueva sesión. Si se produce otro intento de inicio de sesión en el plazo de dos minutos y no hay ninguna licencia libre disponible, se devolverá un código de estado HTTP 401 con el mensaje "Ninguna de las licencias registradas está disponible para el cliente [nombre de usuario]".
Evite la respuesta 401:
Se puede utilizar cualquiera de las siguientes opciones para evitar el código de estado 401 descrito anteriormente.
Mantenga viva la sesión mediante cookies:
Después del inicio de sesión, almacene la cookie .DWPLATFORMAUTH en un contenedor de cookies. Ahora, la cookie del contenedor de cookies se puede utilizar en todas las solicitudes siguientes a la API de DocuWare. Mientras no se cierre la sesión, la aplicación podrá utilizar la sesión anterior sin tener que volver a autenticarse y sólo utilizará una licencia de cliente. Utilice este método si la aplicación envía solicitudes a la API de DocuWare en un intervalo de tiempo irregular. La duración de la cookie es de 20 años y debería funcionar siempre que no se cierre la sesión.
Reconexión en dos minutos con un token:
A veces es necesario volver a conectarse a la API de DocuWare en los dos minutos siguientes a la llamada al punto final /Account/LogOff. Para evitar el error 401, se puede utilizar un token, en lugar de mantener viva la sesión mediante la cookie. El token puede crearse antes del cierre de sesión llamando al endpoint /Organizations/LoginToken a través del método post. Esta llamada requiere un cuerpo en el que se especifique el producto de destino, el uso (Multi, Single) y el tiempo de vida. Eche un vistazo al siguiente ejemplo de cuerpo JSON para crear un token:
{
"TargetProducts":["PlatformService"],
"Usage": "Multi",
"Lifetime":"1.00:00:00"
}
"TargetProducts":["PlatformService"],
"Usage": "Multi",
"Lifetime":"1.00:00:00"
}
La respuesta contendrá el token proporcionado por la plataforma. Después, la autenticación se puede realizar enviando el token vía post a /Account/TokenLogOn. Este método de autenticación permite la reutilización de la licencia de usuario, que estaba en uso antes de la operación de cierre de sesión. El token tiene un tiempo de vida, que se puede establecer al solicitar el token (parámetro Lifetime). La mayoría de las aplicaciones DocuWare (por ejemplo, Desktop Apps) utilizan un token con una vida útil de 365 días. Para repetir este proceso, es importante crear un nuevo token antes de cerrar la sesión y utilizar siempre el token más reciente para realizar la operación de inicio de sesión.
KBA es aplicable tanto a organizaciones en la nube como locales.
Tenga en cuenta: Este artículo es una traducción del idioma inglés. La información contenida en este artículo se basa en la(s) versión(es) original(es) del producto(s) en inglés. Puede haber errores menores, como en la gramática utilizada en la versión traducida de nuestros artículos. Si bien no podemos garantizar la exactitud completa de la traducción, en la mayoría de los casos, encontrará que es lo suficientemente informativa. En caso de duda, vuelva a la versión en inglés de este artículo.