diff --git a/codeauth.md b/codeauth.md new file mode 100644 index 0000000..3196e55 --- /dev/null +++ b/codeauth.md @@ -0,0 +1,73 @@ +# Авторизация, ввод кода на стороне клиента + +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" +} +``` \ No newline at end of file