После регистрации приложения в системе доступа к API Вы получаете два уникальных идентификатора-ключа: публичный ключ (Public key) и закрытый ключ (Private key). Ключи выглядят следующим образом:
Public key: 1176613c0aa6e955ceab55564a66cc30d01670e034b82e79c71af64a539749c0
Private key: 0c8d29fa5dfaa6bd992d4a8d02e13e47c04dbc88bc311c7af5ac2646127bffb7
Private key - ключ, который нельзя передавть никому. Его знает только Ваше приложение и сервер. На основе него формируется цифровая подпись для авторизации.
Public key - открытый и доступный любому 3му лицу ключ на основе которого происходит идентификация Вашего приложения.
При регистрации Вам выдается идентификатор приложения. Это целое число [int]. Идентификатор приложения также используется для формирования цифровой подписи [SIGN].
Цифровая подпись необходима для защиты информации на сервере, защиты от различного рода хакерских атак на сервер API. Также некоторые параметры, например пароль и логин пользователя, должны быть зашифрованы прежде чем передавать их на сервер API. Для большинства запросов к серверу API цифровая подпись формируется на основе Private key следующим образом:
hash-sha256(appid:appname:Private key);
На php это может выглядеть слудеющим образом:
$sign = hash("sha256", '6'.':'.'test'.':'.'0c8d29fa5dfaa6bd992d4a8d02e13e47c04dbc88bc311c7af5ac2646127bffb7');
Результат:
7149f1dcaf78283b3a2f92312b43c9a8c0003148ba8e440bf69c40b4641d4ccb
Цифровая подпись должна передаваться для каждого запроса к API как отдельный заголовок HTTP запроса Authorization, используя стандартную утилиту CURL это можно описать как:
curl --header "Authorization: 7149f1dcaf78283b3a2f92312b43c9a8c0003148ba8e440bf69c40b4641d4ccb" api.biblioclub.ru/v3/
ВАЖНО: Устанавливайте заголовок Authorization цифровой подписи для каждого запроса к API
Получение информации о Вашем приложении.
Метод| URI | HTTP Method | Authentication |
| api.biblioclub.ru/v3/app?api_key={public_key} | GET | Public-key & Header |
api.biblioclub.ru/v3/app?api_key=1176613c0aa6e955ceab55564a66cc30d01670e034b82e79c71af64a539749c0