Я получил решение, подобное вашему, ваши ответы.
1. Нужно ли мне писать 2 разных API? один для веб-сайта, который использует Spring Security, а второй для мобильного приложения?
Нет, вы можете реализовать один Rest API, и он может быть использован для обоих. Если один и тот же пользователь может проходить аутентификацию в сети и на мобильном телефоне, это должен быть один и тот же API остальных.
2. Как я могу обработать аутентификацию для мобильного приложения? Работает ли он и с Spring Security?
И для Интернета, и для мобильных устройств необходимо использовать JWT, это токен, вы реализуете бэкэнд с Spring Security, он поддерживает реализацию JWT, и ваш интернет и мобильный будут работать на равных.
3. Каков наилучший способ создания защищенной серверной части для обслуживания веб-сайта и мобильного приложения?
Вам нужно реализовать два разных проекта, веб и мобильный, но вы можете использовать некоторые библиотеки или инструменты для работы как в сети, так и на мобильных устройствах. Что касается безопасности, вы можете использовать JWT, он будет работать со всеми функциями безопасности Spring Security.
Подробнее об этом:
https://jwt.io/introduction/