Идентификация
Идентификацията в платформата с е осъществява посредством JSON Web Tokens (JWT) както следва:
Стъпка 1. Изпраща потребител и парола
Клиента изпраща POST заявка към http://e-services.bfu.bg/api/. Заявката съдържа полета потребител (user) и парола (pass) хеширана посредством sha256.
Например: потребител test с парола test изпраща:
user=test&pass=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Стъпка 2. Връща ключа на клиента
Сървъра връща на клиента отговор в който се съдържа ключ за достъп.
Например:
{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjMiLCJleHAiOjE1MTEzNjUyMzN9.yANST1g9CzLeqtBYFtJ7JVUmSHizrwYE4ZWWvjLhgOI"}
Стъпка 3. Изпраща заявка и ключа
Клиента изпраща POST заявка съдържаща ключа за достъп в хедъра на страницата и входен параметър необходим за съответната услуга.
Например за услугата: POST http://e-services.bfu.bg/api/faculty.php
Хедър на страницата:
{Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjMiLCJleHAiOjE1MTEzNjUyMzN9.yANST1g9CzLeqtBYFtJ7JVUmSHizrwYE4ZWWvjLhgOI}
Входен параметър за услугата:
fak=5
Стъпка 4. Връща резултата
В случай на успешна идентификация сървъра връща резултат от работата на конкретната страница във формат JavaScript Object Notation (JSON).
Например:
{ "FACULTY": [ { "number": 1, "code": "308", "title": "проф.д-р н.", "name": "Андон Лазаров", "picture": "http://e-services.bfu.bg/api/picture.php?id=308", "teacher": "http://e-services.bfu.bg/api/teacher.php?id=308", "publications": "http://e-services.bfu.bg/api/publications.php?id=308", "consultation": "Сряда, от 15:00 до 17:00 ч., стая 409\r\n" }, { "number": 2, "code": "259", "title": "доц.д-р н.", "name": "Иванка Стамова", "picture": "http://e-services.bfu.bg/api/picture.php?id=259", "teacher": "http://e-services.bfu.bg/api/teacher.php?id=259", "publications": "http://e-services.bfu.bg/api/publications.php?id=259", "consultation": "" }, ... }
JSON продукта може да бъде превърнат в програмен код в Интернет на адрес quicktype.io или json2csharp.com.