Как правильно реализовать авторизацию в Spring Rest для мобильных и веб приложений
Ребята помогите пожалуйста
Пытаюсь построить Rest api на Java, где клиентами будут Мобильные приложения (Android, IOS) И веб приложение.
И так, надо сделать авторизацию : нативную и с помощью соцсетей (Google,Facebook,Vk и возможно Apple ID).
Проблема следующая, я не совсем знаю ,как правильно реализовать авторизацию на Rest с мобильными и веб приложениями. Уже практически все перечитал ,но ничего не прояснилось (А возможно ,только больше запутался. Изначально думал просто jwt вместо сессий и всё.)
Что я узнал
Использовать технологию единого входа (SSO)
Чтобы реализовать авторизацию для мобильных и веб приложений, нужно использовать Oauth2. Следовательно , Сервер Авторизации , Сервер Ресурсов и Клиент.
Вместо сессий токены jwt
Инструменты выбрал следующие: Spring Security + Spring Authorization Server + hibernate + MySQL
Но когда начал собирать столкнулся с проблемой ,так как мобильные приложения - это паблик клиент , т.е использовать Authorization Code + PKCE ,но примеров реализаций нет .
Прочитал ,что есть такой Keycloak. Но я не уверен ,что он мне подходит. Где-то в коментах прочитал ,что он не совсем подходит для того ,чтобы сохранять юзеров в свою бд.
Подскажите пожалуйста , как правильно реализовать авторизацию в рест для мобильных и веб приложений . И вообще , на верном ли я пути?
И ,что для моего проекта будет больше подходить : Keycloak? Ory Hydra?
Я новичок с рест до этого не работал , а про Oauth относительно недавно узнал .
Буду благодарен за любую помощь)