Ответ 1
Вы совершенно правы. AFAIK нет "универсального" пакета, который реализует эти потоки. Я давно искал этот код, и ничего не нашел. Я думаю, что @luizcarlosfx прав, что каждое приложение имеет свои собственные потребности, поэтому сложно написать что-то общее, которое соответствует всем потребностям.
EDIT: Я видел такие комментарии, как "Это не так сложно реализовать". Правда. Но вы должны быть уверены, что позаботитесь обо всех случаях. Например, что произойдет, если пользователь попытается создать учетную запись, которая уже существует? что произойдет, если пользователь попытается создать учетную запись, которая уже существует, но неактивна? как насчет политики пароля? (слишком длинный/слишком короткий/сколько капитала и т.д.), что бы отправить по электронной почте ссылку активации пользователю? как создать эту ссылку? как вы его зашифруете? как насчет контроллера, который получит клик по ссылке и активирует учетную запись? и все больше и больше...
Однако, я сделал шаг вперед и попытался закодировать что-то, что будет отвечать большинству потоков - регистрация, забыли пароль, сменить пароль и т.д. и что-то, что будет достаточно обеспечено, чтобы приложения были способный использовать его без опасения, что его легко взломать.
Я реализовал проект JAVA для этого случая использования. Это открытый исходный код, основанный на Spring -Security. Версия выпуска находится на Maven-Central, поэтому вам не нужно ее компилировать, но вместо этого вы можете получить ее как зависимость от maven в своем проекте!
<dependency>
<groupId>com.ohadr</groupId>
<artifactId>authentication-flows</artifactId>
<version>1.5.0-RELEASE</version>
</dependency>
Я думаю, что он отвечает на ваш вопрос...
Есть объяснения обо всем (и если что-то не хватает - дайте мне знать...)
Вы можете найти здесь пример кода клиентского приложения (например, использование).
Это главная страница проекта плюс демонстрация, а еще одна демонстрация здесь (но это приложение, которое после обновления до версии 1.6.1 требует входа с электронной почтой с "хорошим" доменом - nice.com, поэтому вы не можете использовать его для демонстрации, используйте первый пример). Это клиентское веб-приложение, использующее auth-потоки, с README со всеми пояснениями.
Надеюсь, что это поможет!