То, что вы описываете, представляет собой стандартный поток OAuth2, который предназначен для того, чтобы пользователь никогда не вводил свои учетные данные непосредственно в приложение.Цель здесь состоит в том, чтобы избежать того, чтобы ваше приложение могло захватывать / кэшировать учетные данные пользователя, а это действительно то, чего хочет владелец учетных данных (пользователь).OAuth2 предназначен для перенаправления пользователя к поставщику удостоверений, ввода его учетных данных и предоставления приложению доступа к ресурсам от его имени.В наши дни это стандартная схема.
Однако для сторонних приложений, где существует доверие, существует существующий поток OAuth2, который будет выполнять то, что вы хотите, называемый потоком пароля владельца ресурса.Я не рекомендую вам его реализовывать, но он позволит вам локально собирать учетные данные пользователя и получать в ответ соответствующие токены.https://developer.okta.com/authentication-guide/implementing-authentication/password