Обсудим Веб авторизация, что думаете?

Encourager

Разработчик+
Разработчик
Пользователь
Сообщения
568
Решения
7
В последнее время мне стала интересна тема веб разработки, и захотелось сделать что-то для тренировки и пополнения портфолио. Наиболее интересным и относительно простым вариантом стала система авторизации через веб сервис. В данный момент бэкенд полностью готов, остались правки только в фронтенде и плагине. В планах докрутить систему личного кабинета и добавить в него больше функций, а также добавить возможность авторизации через сторонние сервисы (google, discord).

В данный момент набор технологий следующий:

бэкенд:
  • Spring Boot 4 и Java 25 основа приложения
  • Spring Data JPA + PostgreSQL для хранения данных
  • Spring Security, JWT(RSA) для аутентификации токены подписываются приватным ключом и проверяются публичным, access токен используется для получения доступа к защищённым эндпоинтам, refresh токен для обновления сессии без повторной аутентификации
  • Redis в качестве рейт лимитера, кеша и брокера между прокси и бэкендом (Посчитал кафку излишней для этого кейса)

фронтенд: (Слабо в нём разбираюсь, писал с помощью товарища, чата гпт и бога)
  • Vue 3 в качестве основного фреймворка
  • Pinia для управления состоянием
  • Axios для запросов к апи

плагин:
  • Стандартный HTTP клиент для создания запроса на вход
  • Caffeine локальный кэш для управления сессиями
  • Redis для обновления состояния входа
  • поддерживает только bungee

Что по вашему мнению стоит поменять в наборе технологий? Какие функции стоит добавить? Какие подводные камни могут быть у такой системы и насколько она жизнеспособна на реальном продакшене? Стоит ли выкладывать эту реализацию в открытый доступ / продавать?

Небольшой предпоказ (Да, мне лень активировать винду, настроить почту и прокси)
 
  • Spring Boot 4 и Java 25 основа приложения
  • Spring Data JPA + PostgreSQL для хранения данных
  • Spring Security
Не слишком тяжёлые штуки? Я думаю хватило бы стандартного http сервера. Ну или использовать next/nuxt для всего, раз уж используешь vue
 
Не слишком тяжёлые штуки?
Да, но хотелось поработать именно со спрингом
Объединено

Я планировал ещё для общения между бэкендом и прокси использовать кафку, но решил что это уже слишком
 
Последнее редактирование:
Это мало кому будет интересно. Богатые сервера скорее выберут своё решение, а не очень богатым это совсем не нужно.
 
В последнее время мне стала интересна тема веб разработки, и захотелось сделать что-то для тренировки и пополнения портфолио. Наиболее интересным и относительно простым вариантом стала система авторизации через веб сервис. В данный момент бэкенд полностью готов, остались правки только в фронтенде и плагине. В планах докрутить систему личного кабинета и добавить в него больше функций, а также добавить возможность авторизации через сторонние сервисы (google, discord).

В данный момент набор технологий следующий:

бэкенд:
  • Spring Boot 4 и Java 25 основа приложения
  • Spring Data JPA + PostgreSQL для хранения данных
  • Spring Security, JWT(RSA) для аутентификации токены подписываются приватным ключом и проверяются публичным, access токен используется для получения доступа к защищённым эндпоинтам, refresh токен для обновления сессии без повторной аутентификации
  • Redis в качестве рейт лимитера, кеша и брокера между прокси и бэкендом (Посчитал кафку излишней для этого кейса)

фронтенд: (Слабо в нём разбираюсь, писал с помощью товарища, чата гпт и бога)
  • Vue 3 в качестве основного фреймворка
  • Pinia для управления состоянием
  • Axios для запросов к апи

плагин:
  • Стандартный HTTP клиент для создания запроса на вход
  • Caffeine локальный кэш для управления сессиями
  • Redis для обновления состояния входа
  • поддерживает только bungee

Что по вашему мнению стоит поменять в наборе технологий? Какие функции стоит добавить? Какие подводные камни могут быть у такой системы и насколько она жизнеспособна на реальном продакшене? Стоит ли выкладывать эту реализацию в открытый доступ / продавать?

Небольшой предпоказ (Да, мне лень активировать винду, настроить почту и прокси)

Ну если ты хочешь влить его в открытый доступ то не помешала бы поддержка Velocity. А так идея не плохая.
 
В последнее время мне стала интересна тема веб разработки, и захотелось сделать что-то для тренировки и пополнения портфолио. Наиболее интересным и относительно простым вариантом стала система авторизации через веб сервис. В данный момент бэкенд полностью готов, остались правки только в фронтенде и плагине. В планах докрутить систему личного кабинета и добавить в него больше функций, а также добавить возможность авторизации через сторонние сервисы (google, discord).

В данный момент набор технологий следующий:

бэкенд:
  • Spring Boot 4 и Java 25 основа приложения
  • Spring Data JPA + PostgreSQL для хранения данных
  • Spring Security, JWT(RSA) для аутентификации токены подписываются приватным ключом и проверяются публичным, access токен используется для получения доступа к защищённым эндпоинтам, refresh токен для обновления сессии без повторной аутентификации
  • Redis в качестве рейт лимитера, кеша и брокера между прокси и бэкендом (Посчитал кафку излишней для этого кейса)

фронтенд: (Слабо в нём разбираюсь, писал с помощью товарища, чата гпт и бога)
  • Vue 3 в качестве основного фреймворка
  • Pinia для управления состоянием
  • Axios для запросов к апи

плагин:
  • Стандартный HTTP клиент для создания запроса на вход
  • Caffeine локальный кэш для управления сессиями
  • Redis для обновления состояния входа
  • поддерживает только bungee

Что по вашему мнению стоит поменять в наборе технологий? Какие функции стоит добавить? Какие подводные камни могут быть у такой системы и насколько она жизнеспособна на реальном продакшене? Стоит ли выкладывать эту реализацию в открытый доступ / продавать?

Небольшой предпоказ (Да, мне лень активировать винду, настроить почту и прокси)
Идея вполне прикольная если ещё поработать над оформлением на сервере и обновлять страницу с подтверждением автоматически по получении запроса
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Также не отображается айпи-адрес который ты разрешил. Трагично немного
 
Идея вполне прикольная если ещё поработать над оформлением на сервере и обновлять страницу с подтверждением автоматически по получении запроса
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Также не отображается айпи-адрес который ты разрешил. Трагично немного
фронтенд доделывать надо, там много косяков
 
Идея прям ваще прикольная, как-то тоже думал над подобной штукой
Из того что стоит добавить это однозначно функционал сессий (т.е. при одобрении входа айпи сохраняется как доверенный на какое-то время), отправку ссылки на личный кабинет в игре вместе с сообщением "подтвердите вход" (потому что среднестатистический игрок вряд-ли сможет быстро найти этот самый личный кабинет) и динамическую подгрузку запросов чтобы человеку не нужно было обновлять страницу (вебсокеты?). А, ну и всякие удобства типа "войти через ..." (oauth2) думаю тоже многие бы оценили
 
Бэкенд теперь с открытым исходным кодом, приглашаю всех желающих поучаствовать в разработке (фронтенд и плагин запушу чуть позже)
 
Последнее редактирование:
настроить почту
Кстати, для теста почты есть всякие тестовые SMTP сервера, которые легко разворачиваются в докере буквально одной командой,
 
На самом деле идея очень интересная, но т.к эта система авторизации, использование ИИ при написании сайта не очень хорошая идея связи с безопасностью.

Вместо того, чтобы предлагать проектам и игрокам авторизоваться через сайт принудительно, сделать систему веб-аддона к текущим плагинам на авторизацию как дополнительный способ аутентификации. Как это работает? Человеку будет предлагать открыть в чате ссылку на веб-сайт с токеном, где владелец проекта на свое усмотрение может подключить Google Cloud (бесплатно) системы по типу OAuth 2.0 (авторизация через гугл аккаунт), включить биометрию, двуху и т.д, а так же другие способы аунтификации по типу телеграм и дискорд.

Выглядит и функционирует это так:

1. Используя команду /webauth, тебе выдаётся ссылка с уникальным токеном для входа в настройки режима веб-аутентификации. После перехода на сайт, нужно так же нажать на кнопку отправить код, который появляется в игре. Затем этот код нужно ввести на сайте.
2. Далее у тебя на сайте появляется небольшой авторизованный профиль. Здесь ты можешь включить OAuth или другие способы авторизации вплоть до Ключа шифрования или Гос услуг хД.
3. При попытке входа на аккаунт другим игроком, он вводит сначала пароль, а затем требует зайти на сайт и пройти веб аутентификацию. Он должен будет зайти через гугл аккаунт, телеграм или ещё чёт.

На самом деле у этой системы намного больше потенциала и практически самая продвинутая система безопасности аккаунтов.

Но очень важно сделать систему сетевого отпечатка и привязки настроек входа в аккаунт строго к компу и /webauth на аккаунте в игре. Чтобы никто посторонний не мог зайти в профиль и редактировать на сайте настройки, только истинный владелец.
 
На самом деле идея очень интересная, но т.к эта система авторизации, использование ИИ при написании сайта не очень хорошая идея связи с безопасностью.
Он мне только кнопочки красил
 
Назад
Сверху Снизу