projects/codeauth.md

73 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Авторизация, ввод кода на стороне клиента
1. **Сайт:** Пользователь вводит номер телефона. Сайт генерирует **временный уникальный `код` (случайное число)** и сохраняет его в сессии с временем жизни 5 минут.
2. **Сайт:** Через API отправляет это случайное число **в момент запроса** в бота пользователю (и выводит инструкцию как открыть бота).
3. **Бот:** При первом запуске запрашивает номер (чтобы привязать `user_id` Telegram/МАКС к номеру телефона). **При следующих запусках** номер телефона не запрашивается, пользователь находится по номеру телефона и сразу отправляется проверочный код. Код удаляется из чата с пользователем через 5 мин.
4. **Пользователь** вводит этот код на сайте.
5. **Сайт** сверяет введенный код с тем, что отправил в бота.
# API Endpoint
## Отправить проверочный код
Номер телефона нормализуется на клиенте до 79********* - 11 цифр, начиная с 7.
``` Curl
curl -X POST "https://api.botboom.ru/shop/codeauth" \
-H "Authorization: Bearer your_token" \
-H "Content-Type: application/json" \
-d '{
"phone": "79204421997", \
"code": 1234
}'
```
# Овет:
http 200
```json
{
"is_registered": true,
"tg_link": "https://t.me/Agrokomplexshop_bot?start=tgauth",
"max_link": "https://max.ru/id2328000083_1_bot?start=tgauth"
}
```
"is_registered": true - пользователь уже зарегистрирован, код успешно отправлен сразу
"is_registered": false - пользователь ещё не регистрировался и должен при входе в бота поделиться номером телефона. Код присылается сразу после отправки номера.
## Проверить что номер телефона уже зарегистрирован.
Номер телефона нормализуется на клиенте до 79********* - 11 цифр, начиная с 7.
``` Curl
curl -X POST "https://api.botboom.ru/shop/codeauth" \
-H "Authorization: Bearer your_token" \
-H "Content-Type: application/json" \
-d '{
"phone": "79204421997"
}'
```
# Овет:
Номер зарегистрирован: http 200
```json
{
"is_registered": true,
"tg_link": "https://t.me/Agrokomplexshop_bot?start=tgauth",
"max_link": "https://max.ru/id2328000083_1_bot?start=tgauth"
}
```
Номер не зарегистрирован: http 404
```json
{
"is_registered": false,
"tg_link": "https://t.me/Agrokomplexshop_bot?start=tgauth",
"max_link": "https://max.ru/id2328000083_1_bot?start=tgauth"
}
```