ComunicAPI/classes/tokens.php
2017-06-07 14:53:58 +02:00

60 lines
1.4 KiB
PHP

<?php
/**
* Tokens checker class
*
* @author Pierre HUBERT
*/
class Tokens{
/**
* Check request client tokens
*
* @return Boolean Depends of the validity of the tokens
*/
public function checkClientRequestTokens(){
if(!isset($_POST['serviceName']) OR !isset($_POST['serviceToken']))
return false; //No token specified
//Check tokens
if(!$serviceID = $this->validateClientTokens($_POST['serviceName'], $_POST['serviceToken']))
return false;
//Save service ID in a constant
define("APIServiceID", $serviceID);
//Else everything went good
return true;
}
/**
* Check client API credentials (tokens)
*
* @param String $serviceName The name of the service
* @param String $token The service's token
* @return Boolean False or Tokens ID / Depending of validity of credentials
*/
private function validateClientTokens($serviceName, $token){
//Prepare DataBase request
$tableName = CS::get()->config->get("dbprefix")."API_ServicesToken";
$conditions = "WHERE serviceName = ? AND token = ?";
$values = array(
$serviceName,
$token
);
//Make request
$requestResult = CS::get()->db->select($tableName, $conditions, $values);
//Analyse result
if(count($requestResult) == 0){
//There is no available entries
return false;
}
else {
//The API is correctly identified
return $requestResult[0]['ID'];
}
}
}