Autenticando PLATFORM USERS
Para autenticar a un usuario mediante 'user/password' de forma programativa disponemos de un método para facilitar el proceso y no tener que realizar llamadas directas al API.
$this->core->user->loadPlatformUserWithUserPassword($user,$password,$platform,$key)
El administrador de la plataforma deberá dar de alta una clave de integración dentro de la variable api_login_integration_keys
Ejemplo de Autenticación
Mostramos un ejemplo para crear un END-POINT que permita autenticar a un usuario y devolver el token que se utilizará para las siguientes llamadas.
public function ENDPOINT_signin()
{
//region READ $user, $password, $platform
if(!$user = $this->checkMandatoryFormParam('user')) return;
if(!$password = $this->checkMandatoryFormParam('password')) return;
if(!$platform = $this->checkMandatoryFormParam('platform')) return;
if(!$key = $this->getHeader('X-EXTRA-INFO')) return $this->setErrorFromCodelib('params-error','Missing header X-EXTRA-INFO with the Integration Key Value');
//endregion
if(!$this->core->user->loadPlatformUserWithUserPassword($user,$password,$platform,$key)) {
return $this->setErrorFromCodelib($this->core->user->errorCode,$this->core->user->errorMsg);
}
$this->ok = 201;
$this->addReturnData(['token'=>$this->core->user->token,'user'=>$this->core->user->data]);
}
Ejemplo de verificación del token
Este ejemplo espera recibir el token y la clave de integración en las cabeceras: X-DS-TOKEN y X-EXTRA-INFO
public function ENDPOINT_check()
{
//region VERIFY header X-DS-TOKEN to validate as PLATFORM USER token
if(!$key = $this->getHeader('X-EXTRA-INFO')) return $this->setErrorFromCodelib('params-error','Missing header X-EXTRA-INFO with the Integration Key Value');
if(!$token = $this->getHeader('X-DS-TOKEN')) return $this->setErrorFromCodelib('params-error','Missing header X-DS-TOKEN with the token');
if(!$this->core->user->loadPlatformUserWithToken($token,$key,true))
return $this->setErrorFromCodelib($this->core->user->errorCode,$this->core->user->errorMsg);
//endregion
$this->addReturnData(['User'=>$this->core->user->data]);
}