DART ВАРИАНТ 1
Похоже, у Dart есть собственные root сертификаты. Предпочтительный вариант - избегать написания кода безопасности. Вместо этого в среде разработки настройте сертификат root вашего самоподписанного хоста как доверенный Dart в соответствии с этого руководства .
DART ВАРИАНТ 2
Похоже, что Dart также поддерживает модель обратного вызова сертификата C#, где есть обратный вызов неверного сертификата , который можно переопределить. Не уверен, что для этого вам нужно создать подкласс HttpClient.
/* PSEUDOCODE */
bool callback(X509Certificate cert, String host, int port) {
// Don't allow any exceptions in production
if (currentEnvironment == "DEV" && host == "myhost.com") {
return true;
}
// Use system
return base.callback(cert, host, port)
}
МОБИЛЬНЫЕ РЕКОМЕНДАЦИИ OAUTH
Я вижу, вы пробуете несколько разных библиотек для решения проблемы доверия SSL проблема. Поэтому я решил указать, что я ищу в мобильной библиотеке OAuth, в соответствии с стандартами мобильной безопасности , где следующие ключевые рекомендации:
- Использовать код авторизации Поток (PKCE)
- Вход через системный браузер
- Предпочитать URL-адреса перенаправления HTTPS (заявленные схемы HTTPS)
Я бы по крайней мере старался использовать правильный поток как выше. Я всегда немного опасаюсь новых технических стеков и их библиотек OAuth, поскольку они часто не реализуют рекомендуемое поведение.
Предпочтительной библиотекой с точки зрения безопасности, вероятно, является Flutter AppAuth . Я часто использовал библиотеки AppAuth с самоподписанными сертификатами, но библиотека AppAuth сталкивается со следующими проблемами:
- Вход в системный браузер сложно сделать надежным
- Может быть довольно много больше работы, чем ваши заинтересованные стороны хотят заплатить
- Аспекты взаимодействия с пользователем могут отличаться от того, к чему люди привыкли
- Мост Flutter может иметь свои проблемы
ПРИЛОЖЕНИЕ ПОДТВЕРЖДАЕТ РЕСУРСЫ МОИХ
Когда у вас будет время, возможно, стоит просмотреть мои сообщения в блоге и запустить мои образцы кода Swift / Kotlin, чтобы узнать, думаете ли вы об этом поведение было бы вам полезно: