Cómo autenticarse en CommunityWebAPI
El servicio CommunityWebAPI, un servicio RESTful, requiere autenticación de forma predeterminada para evitar el acceso no autorizado a los datos del servicio. Para acceder a cualquier punto de entrada restringido, los clientes deben primero autenticarse en el servicio de la API y enviar un encabezado de autorización utilizando el proceso descrito. Todos los puntos de entrada, con la excepción del verificador de versiones, están restringidos.
Autenticación en el servicio de la API
Para autenticarse, los clientes deben realizar una llamada POST al método AuthenticateEx con un único parámetro “l” (letra “L” minúscula) y un valor de (nombre de usuario)|(contraseña). Es decir, el nombre del usuario delimitado por una barra vertical con la contraseña del usuario.
El método AuthenticateEx validará la identidad y la contraseña del usuario y cargará su información si es validada. Si las credenciales proporcionadas no son válidas, el servicio genera una excepción y devuelve el mensaje apropiado al cliente.
Cuando la operación es exitosa, el método de autenticación realiza un inicio de sesión suave del usuario y recupera información pertinente para crear un token de autorización. El servicio devuelve este token de autorización y atributos adicionales requeridos del usuario al cliente a través de un objeto JSON con los siguientes atributos.
Atributos del objeto JSON:
agentId (int) es la clave primaria para la fila en la tabla t_agent para el usuario especificado
userRole (int) es el ID de rol asociado con el usuario (100 = agente, 200 = supervisor, 300 = programador, 400 = administrador, 1000 = superusuario)
userName (string) es el nombre completo (apellido, nombre inicial, segundo nombre) asociado con el usuario
timeZone (int) es la zona horaria asociada con el usuario; ya sea específicamente asignada a ese usuario o predeterminada del sitio asignado o actividad empresarial asignada
language (string) no está implementado actualmente
authToken (string) es una cadena encriptada / codificada que proporciona la autorización para llamadas futuras. Esto se describe a continuación.
Invocación de métodos posteriores
El cliente debe conservar el valor del miembro authToken y proporcionarlo en llamadas posteriores al servicio de la API en un encabezado HTTP llamado “WFMSGAPIKEY” para cualquier punto de entrada restringido (nuevamente, casi todos, por lo que es más seguro simplemente ponerlo en todas las llamadas excepto en AuthenticateEx). Además, el servicio de la API actualizará el token y lo devolverá cada vez que un cliente invoque un método restringido. Los métodos del servicio de la API colocarán un nuevo valor en un encabezado HTTP de respuesta con el mismo nombre.
Nota la duración predeterminada de cualquier token de autorización de la API es de 20 minutos.