TGViewer
Kotlin Adept Notes Kotlin Adept Notes @kotlin_adept · 2.42K subscribers
Post #233 3.31K
Особенности работы с Passkeys в Android и iOS

Мы наконец-то реализовали мультиплатформенный модуль для работы с Passkeys и хочу поделиться нюансами, с которыми столкнулись.

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


В случае с Android поддержка Passkeys появилась с Android 9, в то время как на iOS только с iOS 16. При этом технология значительно совершенствовалась в последних версиях ОС, например, предоставляя выбор кастомного менеджера паролей.

🤖 В Android работа с Passkeys происходит через CredentialManager и реализована довольно удобно: почти всё происходит под капотом, достаточно лишь передать JSON с бэкенда. Но есть две проблемы: обработка ошибок и необходимость в Activity context, что создаёт определённые архитектурные сложности. В случае обработки ошибок приходится вручную извлекать из текста через регулярки коды ошибок, чтобы отображать понятные пользователю сообщения.

🇨🇳 А вот пользователи Huawei, к сожалению, не смогут воспользоваться этой фичей, так как CredentialManager просто отказывается работать с другими менеджерами паролей. Хотя для Huawei существует своя реализация FIDO2, API там реализован далеко не лучшим образом, и всё это делается через отдельную Activity, которая будет открываться даже если ключей нет 😐

🍏В iOS же работа с Passkeys происходит через ASAuthorizationController, где приходится вручную мапить каждое поле, конвертировать NSData в Base64URL и обратно. В общем, работать со всем этим добром не очень удобно. Также имеются отличия от Android: например, нельзя передать excludeCredentials для исключения дубликатов ключей, и не поддерживается direct attestation, который позволяет определить, что устройство подписано корневым сертификатом производителя.

💬 А вы интегрировали Passkeys в свой проект или планируете это сделать?

#Passkeys #KMP #Android #iOS
  • ❤ 11
  • 👏 5
  • 👍 4
More from @kotlin_adept
  1. Sep 18, 2026Как подружить строгий Java-энтерпрайз со всеми ИИ изменениями? Сбер поможет разобраться 24…
  2. Sep 17, 2026Мифы и заблуждения в AI-разработке Забавно, как в мире AI-разработки постоянно появляются…
  3. Sep 15, 2026Тем временем мы с командой подготовили для вас новый сезон Podlodka Android Crew при подде…
  4. Sep 12, 2026Прошло уже более полугода с того момента, как я рассказывал вам о реализации Android-прило…
  5. Sep 2, 2026Если вы тоже городили костыли для поддержки смены системной темы внутри Compose Multiplatf…
  6. Aug 10, 2026Сколько стоит отказ от OpenCV Весь препроцессинг в сканере, о котором я рассказывал в прош…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →