Первый
This commit is contained in:
248
README.md
Normal file
248
README.md
Normal file
@ -0,0 +1,248 @@
|
||||
# Описание функций авторизации
|
||||
____
|
||||
#### Алгоритм
|
||||
Refresh token токен действует 12 часов и за эти 12 часов не реже чем раз в 3 часа нужно обновить Refresh token ну и заодно Access token обновиться.
|
||||
Аccess token действует 20 минут (позже уменьшу до 10 минут) и его можно обновить в любое время, если будет просрочен выдаст 401 ошибку. Чтобы время от времени по расписанию не запрашивать обновление токена,
|
||||
можно сделать обвёртку для 2й отправки запроса, в случае выявления просрочки токена чтобы эта обвёртка отправляла запрос Refresh, а потом обратно в нужное место отправляла запрос.
|
||||
____
|
||||
## Оглавление
|
||||
1. [Получить список разрешений для пользователя по Access token](#получить-список-разрешений-для-пользователя-по-Access-token)
|
||||
2. [Получить CAPTCHA с проверочным токеном](#получить-captcha-с-проверочным-токеном)
|
||||
3. [Создать нового пользователя](#создать-нового-пользователя)
|
||||
4. [Получить информацию о пользователе по его Access token ](#получить-информацию-о-пользователе-по-его-access-token )
|
||||
5. [Авторизоваться](#авторизоваться)
|
||||
6. [Обновить токен доступа (а также обновить рефреш токен)](#обновить-токен-доступа-а-также-обновить-рефреш-токен)
|
||||
7. [Ссылка для подтверждения смены пароля (переходят на неё из почты)](#ссылка-для-подтверждения-смены-пароля-переходят-на-неё-из-почты)
|
||||
8. [Принять капчу и код для инициализации процедуры восстановления пароля](#принять-капчу-и-код-для-инициализации-процедуры-восстановления-пароля)
|
||||
9. [Обновить пароль по логину и старому паролю](#обновить-пароль-по-логину-и-старому-паролю)
|
||||
10. [Проверить валидность токена](#проверить-валидность-токена)
|
||||
|
||||
____
|
||||
|
||||
### Получить список разрешений для пользователя по Access token
|
||||
https://istransit.kz/api/authorization/v02/access/
|
||||
|
||||
Запрос может содержать параметры фильтрации для поиска частичного совпадения названия (действия), если параметров фильтрации нет или он равен null то вернёт все записи.
|
||||
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
"action_name":"arm_"
|
||||
}
|
||||
```
|
||||
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": 0,
|
||||
"error_message": "",
|
||||
"data": [
|
||||
"arm_accounting",
|
||||
"arm_carrier",
|
||||
"arm_hr"]
|
||||
}
|
||||
```
|
||||
|
||||
### Получить CAPTCHA с проверочным токеном
|
||||
https://istransit.kz/api/authorization/v02/captcha/
|
||||
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
"email":"test@mail.ru"
|
||||
}
|
||||
```
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"image":"тут gif в base64",
|
||||
"token":"ZUROMC9xQVpRNjVGZGZBSWdrSGk5NHlPK2JXcHJMHVlbWVBPT0=.ywHb5zzI+ARK3XDRpgVkC1fdlqEQWWOXLuVIu\/rRMho="
|
||||
}
|
||||
```
|
||||
Где "image" это рисунок в base64
|
||||
|
||||
А "token" это токен для последующей проверки введённого кода "code":"XXXXXX".
|
||||
|
||||
По умолчанию токен captcha действует 10 минут.
|
||||
|
||||
### Создать нового пользователя
|
||||
https://istransit.kz/api/authorization/v02/create/
|
||||
|
||||
Письмо с паролем придёт на почту
|
||||
|
||||
Пример запроса:
|
||||
```json5
|
||||
{
|
||||
"country_id": "1",
|
||||
"company_name": "ТОО 'Тестовая компания'",
|
||||
"position": "Менеджер",
|
||||
"name": "Берик",
|
||||
"surname": "Султанов",
|
||||
"patronymic": "Серикович",
|
||||
"phone": "+7777123456",
|
||||
"email": "test@test.kz",
|
||||
"code":"11111", //Код с CAPTCHA
|
||||
"token":"ZUROMC9xQVpRNjVGZGZBSdyc2JIV0ZueHdDMHVlbWVBPT0=.ywHb5zzI+ARK3XDRpgVkC1fdlqEQWWOXLuVIu\/rRMho=" //Токен с CAPTCHA
|
||||
}
|
||||
```
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message":""
|
||||
}
|
||||
```
|
||||
|
||||
### Получить информацию о пользователе по его Access token
|
||||
https://istransit.kz/api/authorization/v02/info/
|
||||
|
||||
Запрос:
|
||||
```
|
||||
Cookie: jwt_a = Access token
|
||||
```
|
||||
Пример ответа:
|
||||
```json5
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message": "",
|
||||
"name": "Igor",
|
||||
"surname": "M",
|
||||
"patronymic": "I",
|
||||
"roles": "Кассир, Кладовщик",
|
||||
"time": "1703838784", //Время с сервера
|
||||
"expiration": "1696924443", //Когда "протухнет" пароль
|
||||
"appid": "postman",
|
||||
"arm": "monitoring"
|
||||
}
|
||||
```
|
||||
### Авторизоваться
|
||||
https://istransit.kz/api/authorization/v02/login/
|
||||
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
"login" : "test@istt.kz",
|
||||
"password" : "test",
|
||||
"totp": "123456",
|
||||
"appid" : "postman"
|
||||
}
|
||||
```
|
||||
В ответ:
|
||||
```json5
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message": "",
|
||||
"name": "Igor",
|
||||
"surname": "M",
|
||||
"patronymic": "I",
|
||||
"roles": "Кассир, Кладовщик",
|
||||
"time": "1703838784", //Время с сервера
|
||||
"expiration": "1696924443", //Когда протухает пароль
|
||||
"appid": "postman",
|
||||
"arm": "monitoring"
|
||||
}
|
||||
```
|
||||
Также в ответ Cookie:
|
||||
```
|
||||
Cookie: jwt_a = Access token
|
||||
Cookie: jwt_r = Refresh token
|
||||
```
|
||||
|
||||
### Обновить токен доступа (а также обновить рефреш токен)
|
||||
https://istransit.kz/api/authorization/v02/refresh/
|
||||
|
||||
В запросе Cookie:
|
||||
```
|
||||
Cookie: jwt_a = Access token
|
||||
Cookie: jwt_r = Refresh token
|
||||
```
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message":""
|
||||
}
|
||||
```
|
||||
Также в ответе Cookie:
|
||||
```
|
||||
Cookie: jwt_a = Access token
|
||||
Cookie: jwt_r = Refresh token
|
||||
```
|
||||
|
||||
### Ссылка для подтверждения смены пароля (переходят на неё из почты)
|
||||
https://istransit.kz/api/authorization/v02/reset/
|
||||
|
||||
Пример запроса:
|
||||
```html
|
||||
https://istransit.kz/api/authorization/v02/reset/?token=xxxxx&lng=1
|
||||
```
|
||||
|
||||
В ответ HTML страница с результатом на 7 секунд, с переходом на главную страницу:
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<title></title>
|
||||
<meta http-equiv="refresh" content="7; url='https://aistransit.kz'" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Описание результата</h1>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
### Принять капчу и код для инициализации процедуры восстановления пароля
|
||||
https://istransit.kz/api/authorization/v02/restore/
|
||||
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
"code":"11111",
|
||||
"token":"ZUROMC9xQVpRNjVGZGZBSdyc2JIV0ZueHdDMHVlbWVBPT0=.ywHb5zzI+ARK3XDRpgVkC1fdlqEQWWOXLuVIu\/rRMho="
|
||||
}
|
||||
```
|
||||
Код и токен из captcha
|
||||
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message":""
|
||||
}
|
||||
```
|
||||
|
||||
### Обновить пароль по логину и старому паролю
|
||||
https://istransit.kz/api/authorization/v02/update/
|
||||
|
||||
Для этой функции авторизация пользователя не обязательна, а значит пользователя можно не авторизовывать если у него просрочен пароль.
|
||||
|
||||
В новом пароле должно быть цифра, большая латинская буква, маленькая латинская буква, один спец символ и длина не менее 6 символов.
|
||||
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
"login":"test@mail.ru",
|
||||
"password":"12345",
|
||||
"password_new":"54321"
|
||||
}
|
||||
```
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message":""
|
||||
}
|
||||
```
|
||||
|
||||
### Проверить валидность токена
|
||||
https://istransit.kz/api/authorization/v02/alive/
|
||||
|
||||
На вход Cookie с jwt_a токеном, на выход код ошибки.
|
||||
|
||||
Пример ответа:
|
||||
```json
|
||||
{
|
||||
"error_code": "0",
|
||||
"error_message":""
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user