Как аутентифицировать пользователей SPA, используя oAuth2?

Хорошо, я провел несколько дней в поисках правильного решения о том, как правильно аутентифицировать пользователей при работе со SPA.

У меня есть свой сайт.У меня есть свой собственный API.У меня есть собственная заявка на одну страницу.У меня есть своя база данных пользователей.

Цель: Мне нужно получить access_token, указав имя пользователя и пароль.

Я посмотрел на OAuth2 Implicit Grant, но он требует, чтобы пользователи одобрили / отклонили приложение после успешной аутентификации. В моем случае это не работает, так как у меня есть приложение и API.

Я посмотрел на OAuth2 Password Grant, который не идеален, так как мне нужно выставить client_id / client_secret.

Причина, по которой я смотрю на OAuth2, заключается в том, что API в конечном итоге станет общедоступным.

Есть листандарт способ сделать это? Мои текущие варианты:

Забудьте об OAuth2 и вручную сгенерируйте access_token, когда пользователь POST вводит имя пользователя / пароль (в этом случае мне придется вводить OAuth2, когда API становится открытым)Используйте OAuth2 Password Grant и внедрите client_id / client_secret на сервере, так что просто для того, чтобы клиентское приложение было очень простым (также избегайте всех этих пар dev / staging / prod client_id / client_secret)

Ответы на вопрос(1)

Ваш ответ на вопрос