Автентифікація та керування сесіями
OAuth2/OIDC, PKCE, refresh-токени, безпечне зберігання сесій, webview проти in-app browser, біометрична автентифікація
1Що таке OAuth2 у контексті мобільної автентифікації?
Що таке OAuth2 у контексті мобільної автентифікації?
Відповідь
OAuth2 — це галузевий стандартний протокол авторизації, який дозволяє мобільним застосункам отримувати доступ до ресурсів користувача без розкриття його облікових даних. Він працює шляхом делегування автентифікації серверу авторизації, що видає access-токени. На відміну від прямої автентифікації, де застосунок обробляє паролі, OAuth2 дозволяє користувачеві автентифікуватися через стороннього постачальника (Google, Apple тощо) безпечним способом.
2Яка основна різниця між OAuth2 та OpenID Connect (OIDC)?
Яка основна різниця між OAuth2 та OpenID Connect (OIDC)?
Відповідь
OAuth2 — це протокол авторизації, який дозволяє отримати доступ до ресурсів, тоді як OIDC — це рівень ідентифікації, побудований поверх OAuth2, який додає автентифікацію. OIDC впроваджує ID token, що містить інформацію про особу користувача (claims) у форматі JWT, завдяки чому застосунок може дізнатися, ким є користувач, а не лише те, що він має доступ до певних ресурсів.
3Що таке PKCE (Proof Key for Code Exchange) і чому він є необхідним для мобільних застосунків?
Що таке PKCE (Proof Key for Code Exchange) і чому він є необхідним для мобільних застосунків?
Відповідь
PKCE — це розширення безпеки OAuth2, яке захищає від атак перехоплення коду авторизації. Воно працює шляхом генерації випадкового code_verifier на боці клієнта, з якого виводиться code_challenge, що надсилається під час запиту авторизації. Під час обміну коду на token надсилається оригінальний code_verifier, який сервер перевіряє. Це критично важливо для мобільних застосунків, оскільки вони не можуть зберігати client_secret конфіденційним.
Який OAuth2 flow рекомендований для мобільних застосунків React Native?
Яка різниця між access token і refresh token?
+19 питань зі співбесід
Інші теми співбесід React Native
Основи JavaScript
Основи React
Основи React Native
React Hooks
TypeScript для React та React Native
Компоненти та API React Native
Стилізація та макет у React Native
Навігація в React Native
Управління станом у React Native
Networking та API в React Native
Збереження даних
Форми та валідація
Анімації React Native
Native Modules & Bridge
Код, специфічний для платформи
Дозволи та API пристрою
Push Notifications
Тестування React Native
Налагодження React Native
Build & Deployment
Expo vs React Native Bare
Оптимізація продуктивності
Управління пам'яттю
Architecture Patterns
React Native New Architecture
Найкращі практики безпеки
Offline-First Architecture
CI/CD React Native
Monorepo та спільне використання коду
Складні теми
Життєвий цикл застосунку та фонове виконання
Monitoring & Crash Reporting
Опануй React Native для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно