Commit e076a09e authored by Valentin Skripnikov's avatar Valentin Skripnikov

-

parent bda2fbf5
Внешние модули-компоненты
=========================
Внешний модуль-компонент
========================
Механизм :abbr:`ВМК (внешний модуль-компонент)` предназначен для добавления
или замены каких-либо элементов пользовательского web-интерфейса ARTA Synergy.
......
......@@ -425,7 +425,7 @@ REST API ARTA Synergy доступно только авторизованным
<?php
$login = "Administrator";
$password = "123456"
$password = "123456";
$request = new HttpRequest();
$request->setUrl('http://demo.arta.kz/Synergy/rest/api/admin/db/current_version');
......@@ -464,20 +464,72 @@ REST API ARTA Synergy доступно только авторизованным
| Значение заголовка | ``Basic JHNlc3Npb246RDNST05mQzUyZHRKTzVYZ0R5bjVxVU12`` |
+-----------------------+--------------------------------------------------------+
Кроме того, получить параметры авторизации можно с помощью переменной
окружения основного WEB-приложения Synergy:
Получить значение ``sso_hash`` авторизованного пользователя можно
следующими способами:
* ``$CURRENT_USER`` - представляет собой JSON-объект следующего вида:
#. В случае если приложение представляет собой `Внешний WEB-модуль`_, получить
значение ``sso_hash`` можно из строки запроса.
.. code-block:: json
Пример кода на JavaScript (jQuery):
{
"id": "Идентификатор текущего пользователя",
"sso_hash": "hash-сумма для идентификации пользователя",
"surname": "Фамилия текущего пользователя",
"name": "Имя текущего пользователя",
"patronymic": "Отчество текущего пользователя"
}
.. code-block:: js
:emphasize-lines: 13
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)')
.exec(location.search) || [null, ''])[1]
.replace(/\+/g, '%20')) || null;
}
var settings = {
"async": true,
"crossDomain": true,
"url": "http://demo.arta.kz/Synergy/rest/api/admin/db/current_version",
"method": "GET",
"headers": {
"authorization": ("Basic " + btoa("$session" + ":" + getURLParameter('sso_hash')))
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
#. С помощью переменной окружения основного WEB-приложения Synergy``$CURRENT_USER``,
которая представляет собой JSON-объект следующего вида:
.. code-block:: json
{
"id": "Идентификатор текущего пользователя",
"sso_hash": "hash-сумма для идентификации пользователя",
"surname": "Фамилия текущего пользователя",
"name": "Имя текущего пользователя",
"patronymic": "Отчество текущего пользователя"
}
Пример кода на JavaScript (jQuery):
.. code-block:: js
:emphasize-lines: 7
var settings = {
"async": true,
"crossDomain": true,
"url": "http://demo.arta.kz/Synergy/rest/api/admin/db/current_version",
"method": "GET",
"headers": {
"authorization": ("Basic " + btoa("$session" + ":" + $CURRENT_USER.sso_hash))
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
.. note:: Данный способ можно использовать только если код исполняется
в основном приложении Synergy. Например, приложение представляет
собой `Внешний модуль-компонент`_.
Авторизация по ключам
......@@ -526,3 +578,6 @@ REST API ARTA Synergy доступно только авторизованным
+---------------------+------------------------------------------------------------------------------------------------------------------------+
| Значение заголовка | ``Basic JGtleTpNUzAzWTJRMFpHVTNZUzB6WWpSa0xUUTJOamd0WVdJeU9DMHpaREkxWXpneFpHTm1PR1pmTWpBeE15MHhNQzB6TVNBeE56bzBNZz09`` |
+---------------------+------------------------------------------------------------------------------------------------------------------------+
Внешний WEB-модуль
------------------
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment