Я создаю собственное мобильное приложение, которое подключается к серверу авторизации OpenID, используя поток кода авторизации с PKCE.
Поскольку это собственное приложение, я хотел бы сохранить учетные данные пользователя локально, когда пользователь в первый раз вводит адрес электронной почты и пароль. Каждый раз, когда пользователь запускает приложение, приложение запускает процесс входа в систему, используя экземпляр браузера в фоновом режиме.
Это нормальный поток в нативных приложениях?





Вы должны получить токен доступа. В .net maui вы можете сохранить его с помощью SecureStorage.Default, который реализует интерфейс ISecureStorage. Подробнее читайте здесь https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/storage/secure-storage?view=net-maui-7.0&tabs=android. Время от времени вы можете запросить новый токен и заменить старый.
Если вы собираетесь отправлять имя пользователя и пароль каждый раз, вы можете делать это по незащищенному каналу и без хэширования/шифрования пароля.
Поток такой: Вы входите в систему и сохраняете свой токен. (Может быть больше одного) Вы используете этот токен для вызовов API. (Или разные API)
При запуске вместо генерации новых токенов вы используете сохраненные.
Вы проверяете, истек ли срок действия вашего токена или нет. Если он просрочен - вы заставляете пользователя повторно вводить учетные данные.
Если какой-то токен для какого-то API возвращает 401 (неавторизованный) (по какой-то причине токен был отозван), вы заставляете пользователя повторно вводить учетные данные.
Если что-то непонятно, спрашивайте.
Сохранение пароля пользователя напрямую никогда не является хорошей идеей. Обычно вы сохраняете некоторые производные (куки, токен обновления и т. д.), которые имеют ограниченный срок службы и могут быть отозваны.