[Предложение функции] Перекрестная аутентификация пользователей плагина и сайта
Opened this issue · 2 comments
Какое решение Вы хотите?
Требуется перекрестная аутентификация пользователей плагина и сайта. Сначала пользователь регистрируется на сайте, в дискорде, получает от нас уникальный ключ для входа на сайт, затем устанавливает и использует плагин. Плагин должен проверять наличие верифицированной записи и, либо демонстрировать ему задачи БГС и остальные планируемые функции, либо работать в урезанном режиме.
Дополнительные материалы
https://user.frontierstore.net/developer/docs
https://github.com/Athanasius/fd-api/blob/master/docs/README.md
и Иг, если нужен ключ, запрашивай, у нас есть авторизованный
пусть будет как в Inara, только один токен доступа
токены генерируются достаточно секьюрно, через жавовский ThreadLocalRandom API
а вот пароли учёток секьюрны прямо офигеть как, там Argon2 https://github.com/P-H-C/phc-winner-argon2
Ссылка на обсуждение модели ключевой авторизации в админке канонов (только Славе) https://discord.com/channels/146714487695605760/282234887933526017/648591878773669905
а новых... можно как вариант регистрировать автоматом, но пост-фактум отправлять админам, то есть нам, уведомления, чтобы если что отключить учётки всяких ганкеров и чтобы они не могли пользоваться плагином
а отключенные учётки пересоздавать будет нельзя
существующих сейчас пилотов можно, думаю, скриптами экспортировать из наших таблиц, и по ним насоздавать учётки. отправить пароли ботом
https://github.com/chrisbruford/knights-website
https://github.com/FuelRats/fuelrats.com
Сначала пользователь регистрируется на сайте, в дискорде, получает от нас уникальный ключ для входа на сайт
Может, он сразу будет регистрироваться через дискорд?
Я вижу это так:
- Пользователь открывает дискорд-бота, просит зарегистрировать его с таким-то логином.
- Бот отправляет заявку на сайт с: указанным логином, ID дискорда, и со сгенерированным паролем.
- При успешном ответе бот отвечает пользователю сообщением с паролем.
- Пользователь заходит на сайт под логином и паролем, ему даётся окно с просьбой поменять пароль. После смены пароля ему уже даётся доступ к сайту и, в частности, к странице для привязки аккаунта Frontier.
- После авторизации через Frontier мы запрашиваем из Companion API фронтиров никнейм командира, и приписываем его к пользователю.
- Вот теперь пользователь может сгенерировать на сайте токен для Triumvirate и начать пользоваться плагином.
Пара нюансов:
- Регистрация должна быть доступна только через бота.
- Чтобы никто другой не мог "представиться" ботом, бот должен использовать приватный токен, который можно будет сгенерировать в админке.
Решили сделать следующим образом:
- Пользователь заходит на сайт.
- Регистрируется через Discord ИЛИ через Frontier.
- Создаётся неподтверждённая учётная запись, к которой можно прикрепить другую оставшуюся учётку.
- Администратор подтверждает учётную запись.
- Теперь пользователь имеет доступ к Triumvirate и его токену.
Завтра найду время -- начну реализовывать это на бэкенде.