Skip to content
Для розробників · Увійти через Millida

Вхід через Millida на вашому сайті

Підключення кнопки «Вхід через Millida» — вхід через акаунт Millida для відвідувачів вашого сайту. Реєстрація застосунку, процес авторизації, перевірка токена.

Оновлено 7 вересня 2026 р.

Millida може виступати постачальником ідентичності: відвідувач натискає «Увійти через Millida» на вашому сайті, підтверджує передавання даних і повертається вже автентифікованим. Це працює через OpenID Connect — так само, як вхід через Google, Apple чи Discord, — тож підійде будь-яка готова бібліотека OIDC.

Назовні відкривається лише ідентичність: нікнейм Minecraft, ім'я, аватар і — якщо ви його запросите, а людина погодиться — email, скін, прив'язані Discord і Telegram та репутація на платформі. Баланси, транзакції та сервери застосункам недоступні.

Що потрібно зробити

1. Створіть застосунок

Профіль → API та вебхуки → вкладка Увійти через Millida → «Створити застосунок».

Вам знадобляться:

  • Назва — людина побачить її на екрані входу. Слово «Millida» заборонене в назві чужого застосунку.
  • Redirect URI — куди повернути користувача після підтвердження. Лише https (для розробки дозволено http://localhost). Збіг перевіряється повністю: зайвий слеш або доданий параметр уже не збігатимуться.
  • Посилання на політику конфіденційності — людина побачить його перед передаванням даних вам.

Після створення ви отримаєте client_id і, для серверного застосунку, client_secret. Секрет показується лише один раз — збережіть його негайно.

Тип застосунку: серверний, якщо у вас є бекенд, який може зберігати секрет; публічний, якщо це SPA або мобільний застосунок і сховати секрет ніде.

2. Вкажіть бібліотеці URL постачальника

https://id.millida.net

Цього достатньо: бібліотека сама прочитає https://id.millida.net/.well-known/openid-configuration і знайде решту URL.

3. Надішліть людину на вхід

https://id.millida.net/oauth/authorize
  ?response_type=code
  &client_id=your_client_id
  &redirect_uri=https://your-site.ru/auth/millida/callback
  &scope=openid profile email
  &state=random_string
  &nonce=random_string
  &code_challenge=base64url(sha256(code_verifier))
  &code_challenge_method=S256

PKCE обов'язковий для всіх, зокрема для серверних застосунків. Збережіть state у сесії та перевірте його під час повернення — без цього ворожу відповідь можна підкинути у вашу сесію.

4. Обміняйте код на токени

POST https://id.millida.net/oauth/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)

grant_type=authorization_code&code=…&redirect_uri=…&code_verifier=…

Відповідь містить access_token, id_token і, якщо ви запросили offline_access, refresh_token.

5. Дізнайтеся, хто увійшов

Розберіть id_token (перевірте підпис за JWKS, iss, aud, exp, nonce) або запитайте:

GET https://id.millida.net/oauth/userinfo
Authorization: Bearer <access_token>

Які дані можна запросити

Що ви запрошуєтеЩо отримуєте
openidsub — ідентифікатор користувача, обов'язковий
profileнікнейм, ім'я, аватар, посилання на профіль
emailадреса email і чи підтверджена вона
minecraftнікнейм Minecraft, його UUID, видання та посилання на поточний скін і плащ
discordідентифікатор і ім'я прив'язаного Discord
telegramідентифікатор і @name прив'язаного Telegram
reputationлайки профілю, кількість досягнень, дата реєстрації, позначка підтвердженого акаунта
offline_accessправо оновлювати доступ, доки людина його не відкличе

В офлайн-нікнейма немає UUID — minecraft_uuid буде порожнім, а minecraft_username заповниться з акаунта. telegram_id надходить як рядок: id чату Telegram не вміщується в точне число JSON, і розбір його як числа псує останні цифри.

Запрошуйте лише те, що потрібне для роботи входу: людина читає кожен зайвий пункт на екрані згоди й може передумати просто там.

Про ідентифікатор користувача

sub різний для кожного застосунку в однієї й тієї самої людини. Він незмінний для вашого сайту, але не збігається з sub на інших сайтах — зіставити аудиторії між застосунками за ним не можна.

Зберігайте sub як ключ користувача. Email для цього не підходить: його можна змінити.

Перевірка застосунку

Новий застосунок працює одразу, але на екрані входу він позначений як неперевірений. Коли сайт буде готовий, натисніть «Надіслати на перевірку» в панелі — ми подивимося й знімемо позначку.

Поширені помилки

«redirect_uri does not match any registered address» — адреса зіставляється як повний рядок. Перевірте слеш у кінці, схему та порт.

«Only code_challenge_method=S256 is supported» — PKCE обов'язковий, plain не приймається.

«The authorization code has already been used» — код одноразовий і живе хвилину. Повторний обмін вважається ознакою витоку й повністю відкликає доступ застосунку.

Токен перестав працювати після відкликання — людина вимкнула застосунок у налаштуваннях безпеки профілю. Це очікувана поведінка: надішліть її на вхід знову.

Як людина відкликає доступ

Профіль → Безпека → «Під'єднані застосунки» → «Відкликати». Доступ припиняється негайно, і всі видані токени стають недійсними.