Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ar4ikov/mvs
OpenSource Server for verificate your MC Account to VK
https://github.com/ar4ikov/mvs
auth client hypixel hypixel-api java minecraft minecraft-api mojang python server verification vk vk-advanced-api vk-api vk-bot vk-bot-python vkbot
Last synced: 29 days ago
JSON representation
OpenSource Server for verificate your MC Account to VK
- Host: GitHub
- URL: https://github.com/ar4ikov/mvs
- Owner: Ar4ikov
- Created: 2018-04-17T07:14:25.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-05-12T12:56:34.000Z (over 6 years ago)
- Last Synced: 2024-10-04T09:17:13.924Z (about 1 month ago)
- Topics: auth, client, hypixel, hypixel-api, java, minecraft, minecraft-api, mojang, python, server, verification, vk, vk-advanced-api, vk-api, vk-bot, vk-bot-python, vkbot
- Language: Python
- Size: 317 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Minecraft Verification System
**Minecraft Verification System** - достаточно массивная и обширная для дальшейшего
создания система "привязки" аккаунта Minecraft к социальной сети Вконтакт.Принцип работы:
1. Вы должны иметь лицензионный аккаунт игры Minecraft
2. Зайдите на сервер `mc.hypixel.net` и введите команду `/api new`
3. Введите в методе `createUser` ваш Id VK и Hypixel API Key, который вы получили в предыдущем шаге.По желанию (если иметь прямые руки или хотя бы небольшое понимания `Python Flask` и `Java`) можно изменить сервер подтверждения
на свой. Тогда авторизация будет происходить через него.Весь принцип работы основывается на "доверенных приложениях", как в случае с Hypixel API, где вы получаете
свой уникальный ключ для работы, по которому можно подтвердить аккаунт Minecraft, так и в случае с подтверждением
странички ВК, поскольку система расчитана не на прямые запросы, а запросы через чат-бота в сообществе или на странице.Дополнительную степень защиты оказывает кабинет администратора, в котором вы можете сами создавать и контролировать некие
`Access Token'ы`, которые являются локально серверными, дающими доступ к приватным методам. Именно эти токены должны быть
у ваших скриптов и ботов, которые будут подавать запросы, выступая в виде `доверенных приложений и/или доверенных лиц`.Начало работы
---
Итак, сперва мы должны понять, как запустить сервер.
Но и также посмотреть, какие потребуются элементы для его запуска, а именно
зависимые модули и библиотеки
- flask (Ядро сервера)
- requests (элемент запросов на другие сервера)
- vk_advanced_api (для чат-бота ВК). [Посмотреть его можно тут.](https://github.com/Ar4ikov/vk_advanced_api)Следующий этап - конфигурация.
Конфигурационный файл лежит в `/server/` и именуется как `config.ini`.
Там полностью описана структура, а также каждый параметр, который необходимо указать.И наконец - запуск. запускать нужно обязательно в директории `/server/`. Но если вы не хотите так делать,
установите в файле `/server/api/config.py` свой путь до конфига (по дефолту стоит локальный из папки `/server/`)Первый запуск
---При первом запуске система потребует создать нового пользователя-администратора для входа в админ-панель и дальнейшим управлением `Access Token'ами`.
![hey1](docs/get_started.png 'Начало работы')
После необходимо будет войти в админ панель:
`https:///admin`Система потребует нас туда войти
![hey2](docs/login_to_admin.jpg "Вход в систему")
Система защищена дополнительно `reCaptcha v2` от Google. Вы можете настроить свою `reCaptcha`,
настроив заранее в конфиге ключ для нее.> [Подробнее о рекапче прочтите тут.](https://www.google.com/recaptcha/)
Далее мы попадаем на страницу с админ-панелью
![hey3](docs/admin_panel.png "Админ-панель")
Нажимаем на `Создать токен`, указываем имя приложения, которому хотим сделать новый токен (на ваше усмотрение, не хочу углубляться в такие подробности с созданием
своих приложений и так далее). Создаем! Приложений может быть неограниченное количество.![hey4](docs/creating_token.png "Создание токена")
Новый токен появился в базе данных!
![hey5](docs/tokens.png "Токены")
Для чего нужен этот токен? Для доступа к приватным методам API, таким, как `createUser`, ведь это - служебный метод, который создает юзера на основе доверия и
подтверждения всех принимаемых им данных, таких как Id юзера ВК и Hypixel API Key от вашего Minecraft аккаунта.Основные методы системы
Метод | Зачем и как работает
---------|:----------
getUser | Получение юзера из MVS БД. Необходимо указать или `mvs id (id)`, или `vk`, или `mc`, или `nickname`
getUsers | Получение всех юзеров их MVS
createUser | Создание нового пользователя. Принимает `vk`, `hypixel_key` и `access_token`
confirmUser | Принимает `hypixel_key`, нужен для проверки подлинности `hypixel_key`
updateNickname | Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также особый способ подтверждения (`hypixel_key` юзера или `access_token` приложения). Обновляет ник в базе данных, сверяясь с Mojang API
banUser | Бан пользователя в системе. Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также `access_token` приложения
unbanUser | Бан пользователя в системе. Принимает или `mvs id (id)`, или `vk`, или `mc`, или `nickname`, а также `access_token` приложенияНа этом, пожалуй, с серверной частью и её настройкой мы закончили.
Поля, которые возможно передать
Поле | Значение поля
---------|-------------
id | Id юзера в системе MVS
vk | Id юзера ВК
mc | UUID пользователя Minecraft
nickname | Ник игрока Minecraft
hypixel_key | Hypixel API Key
access_token | Access Token приложенияТеперь разберём ответы сервера
`getUser` при удачном запросе
```json
{
"response": {
"user": {
"id": "mvs_id",
"vk": "vk_id",
"nickname": "nickname",
"confirmation_type": "confirm_type",
"is_banned": False,
"mc": "mc_uuid"
}
},
"status": "success"
}
````getUsers`
```json
{
"response": {
"users": [
{
"id": 1,
"is_banned": "False",
"mc": "aa0f6b98a6b4438d96a0388d22d8e326",
"vk": 160213445,
"nickname": "nickname",
"confirmation_type": "confirm_type"
}
]
},
"status": "success"
}```
`createUser` при удачном запросе
```json
{
"response": {
"user": {
"id": "mvs_id",
"vk": "vk_id",
"nickname": "nickname",
"confirmation_type": "confirm_type",
"is_banned": False,
"mc": "mc_uuid"
}
},
"status": "success"
}```
`confirmUser`
```json
{
"response": {
"key_info": {
"hypixel_key": "hypixel_key",
"ownerUuid": "mc_uuid",
"confirmation_type": "confirm_type",
"nickname": "nickname"
}
},
"status": "success"
}
```updateNickname при удачном запросе
```json
{
"response": {
"new_nickname": {
"name": "NewNickName1337"
}
},
"status": "success"
}
```banUser или unbanUser при удачном запросе
```json
{
"response": {},
"status": "success"
}
```Список возвращаемых ошибок вы можете узреть в `/server/errors.txt`
Клиентская часть
---> Клиент всегда прав, если имеет на это основания
Клиентская часть обусловлена небольшим модулем, который лишь отправляет запросы и дает ответ в виде
своего класса `MVS_Response`Вы также може его установить с платформы `PyPi`
```bash
pip install requests
pip install mvs_client
```Простой пример инициализации:
```python# Импорт модуля
import mvs_client as MVS# Объявление экземпляра класса MVS_Client
mvs = MVS.MVS_Client(
server="http://127.0.0.1",
access_token="D7MSoV0qiRn5WzSBDdJicrGpLCxznaD1g0sFuGvATnu2SdRx108M5otnsiVBZAVY"
)```
где
- server - сервер MVS API
- access_token - Access Token приложенияВзаимодействие:
```python# Получаем пользователя с MVS Id 1
response = mvs.getUser(id=1).getResponse()
print(response)# Получаем ошибку (1. Unknown Method)
response = mvs.getUUseeeer().getErrorCode()
print(response)```
Перейдем к классу `MVS_Response`
Метод | Его функционал
---|---
`getStatus` | Получение статуса ответа от сервера. Бывает либо `success`, либо `failed`
`getResponse` | Получение ключа `response` в ответе. Содержит основную информацию. Если была допущена ошибка, вернет None
`getErrorCode` | Получение кода ошибки о ответе. Если ошибки нет, вернет None
`getCause` | Получение причины ошибки в ответе. Если ошибки нет, вернет None
`getResponseBody` | Вернет полный ответ сервера в формате JSONНа этом закончим с клиентской частью
ВК Бот
---
...
...
...
...Информация появится позже с появлением этого самого бота.
Заключение
---Хотелось бы добавить в окончание данной документации, что система была сделана лишь в помощь тем,
кто в ней нуждается, а именно в автоматическом приеме игроков в Hypixel Guild, без какой-либо нужны проверки
уровня и статистики игрока, а уж тем более без проверки подлинности аккаунта, ведь теперь абсолютно каждый
сможет сделать это.Спасибо за понимание и за прочтение.
Спасибо [@Trippsol](https://vk.con/trippsol) за идею, а также его проекту `MAV`, клиент для которого
от меня вы можете встретить [тут](https://github.com/Ar4ikov/MAVAPI)