Всем привет, знающие леди и джентльмены. Подскажите по некоторым общим вопросам. Есть задача наш сервис (аутентификация пользователя / подтверждение его действия) поставлять для сторонних разработчиков (нацелено на организации типа банков).
Первый основной флоу - регистрация пользователя в системе. Регистрация включает в себя генерацию пары ключей, шифрование данных, несколько хттпс реквестов, парсинг пушей с фаербейса, сохранение данных пользовательской учётки (типа юзернейм и юзерсид для секьюрческих целей) в бд.
Следующий флоу - авторизация. Включает в себя парсинг пуша, получение сохранённых на этапе регистрации данных из бд, цепочку хттпс реквестов, всякое там шифрование-расшифрование с RSA, итог - предоставление разрабу колбеков с TOTP (одноразовый пароль для сверки с таковым на сайте, который истекает в реальном времени и меняется на другой) и возможности послать ответ на запрос авторизации (accept, decline).
Здесь основной архитектурный вопрос - как это всё лучше скомпоновать?
На данный момент в общих чертах идея такая: поставляется либа с
1. Регистратором, в который подкидывается начальная инфа для реги и инициируется собственно рега.
2. Авторизатором, который, собственно, нужно инициализировать где-то и который по пушу будет запускать флоу авторизации.
Сделать их хочу синглтонами, чтобы меньше париться потому что не знаю, как иначе.
Сложна...
Вам нужен нормальный тимлидер + консультанты. Околобанковские приложения по советам из чатика не пишутся. Одна ошибка в архитектуре или воркфлоу и у клиентов потырят деньги.
RSA к примеру несекюрными считаются, забудьте про него и стройте крипоту на норм шифрах из проверенных либ где не будет детских ошибк и так далее