• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/rest.php
  • Класс: CRestServer
  • Вызов: CRestServer::processTokenCheckCall
protected function processTokenCheckCall()
{
	$token = $this->query["token"];

	[$this->scope, $queryString, $querySignature] = explode(CRestUtil::TOKEN_DELIMITER, $token);

	$signature = $this->getTokenCheckSignature($this->method, $queryString);

	if($signature === $querySignature)
	{
		$queryString = base64_decode($queryString);

		$query = array();
		parse_str($queryString, $query);

		unset($query["_"]);

		$callback = $this->getMethodCallback();

		if(!$callback)
		{
			throw new RestException('Method not found!', RestException::ERROR_METHOD_NOT_FOUND, self::STATUS_NOT_FOUND);
		}

		$result = call_user_func_array($callback, array($query, $this->scope, $this));

		return array("result" => $result);
	}
	else
	{
		throw new AccessException("Link check failed");
	}
}