Сервис авторизации
Что это
Сервис авторизации занимается хранением пользовательских и клиентских реквизитов, и выдачей токенов доступа, по которым другие приложения могут авторизовать контекст.
Реквизиты для обращения в сервис можно получить у сотрудников технической поддержки Brainysoft, либо самостоятельно в интерфейсе сервиса авторизации.
Расшифровать access token (bsauth)
Access token содержит в себе контекст пользователя, его можно получить отправив запрос в ядро. Если токен будет не валидный/протухший - в ответ вернется код с ошибкой
curl 'https://{CORE_ENDPOINT}/bs-core/utils/session/whoami' --header 'bsauth: {{ACCESS_TOKEN}}'
Ответ
{
"timestamp": 1632340000000,
"status": "ok",
"data": {
"userId": 123,
"branchId": 101301,
"subdivisionId": 101791,
"legalEntityId": 102071,
"accessRightId": 102036,
"customerKey": "your-customer-key"
}
}
Сервисное приложение / client credentials
В этом руководстве представлена инструкция по получению учетных данных клиента и токена доступа с помощью OAuth API. В инструкции описана авторизация по логину и паролю (или в соответствии со спецификацией grant_type=client_credentials). Полное описание протокола можно получить в спецификации OAuth 2.0.
Авторизация по логину и паролю представляет простой POST-запрос, в результате которого возвращается access token. Для получения access token нужно иметь:
Пример получения access token.
> POST {HOST}/oauth/token
> Content-Type: application/x-www-form-urlencoded
> grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}
Учетные данные client_id и client_secret, которые действительны для необходимых учетных записей.
Host - Адрес куда будет отправлен запрос
{
"access_token": "12346abcdef=/",
"token_type": "bsauth",
"expires_in": 299,
"scope": "core_basic admin:read admin:write account:read account:write account:pswrd",
"sessid": "1234567"
}
Ответ содержит:
- access_token - токен
- token_type – тип токена, в данном случае bsauth
- expires_in – Время жизни токена в сек
- scope – привилегии пользователя
- sessid – ID сессии