Cómo autenticar en el CommunityWebAPI.
El CommunityWebAPI, un servicio Restful, requiere autenticación por defecto para prevenir el acceso no autorizado a los datos detrás del servicio. Para acceder a cualquier punto de entrada restringido, los clientes deben primero autenticarse en el servicio API y enviar un encabezado de autorización utilizando el proceso descrito. Todos los puntos de entrada, con la excepción del verificador de versión, están restringidos.
Autenticación en el servicio 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á la información del usuario si se valida. Si las credenciales proporcionadas no son válidas, el servicio lanza una excepción y devuelve el mensaje apropiado al cliente.
Cuando tiene éxito, 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 del 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 por defecto del sitio / actividad empresarial asignada
language (string) no está implementado actualmente
authToken (string) es una cadena cifrada / codificada que proporciona la autorización para llamadas futuras. Esto se describe a continuación.
Invocación de métodos subsecuentes
El cliente debe retener el valor del miembro authToken y proporcionarlo en llamadas subsecuentes al servicio 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 AuthenticateEx). Además, el servicio API actualizará el token y lo devolverá cada vez que un cliente invoque un método restringido. Los métodos del servicio 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 API es de 20 minutos.