Xác thực & Quản lý phiên
OAuth2/OIDC, PKCE, refresh token, lưu trữ phiên an toàn, webview so với in-app browser, xác thực sinh trắc học
1OAuth2 là gì trong bối cảnh xác thực trên thiết bị di động?
OAuth2 là gì trong bối cảnh xác thực trên thiết bị di động?
Câu trả lời
OAuth2 là một giao thức ủy quyền tiêu chuẩn ngành cho phép các ứng dụng di động truy cập tài nguyên của người dùng mà không để lộ thông tin đăng nhập của họ. Nó hoạt động bằng cách ủy thác việc xác thực cho một máy chủ ủy quyền phát hành access token. Khác với xác thực trực tiếp nơi ứng dụng xử lý mật khẩu, OAuth2 cho phép người dùng xác thực thông qua một nhà cung cấp bên thứ ba (Google, Apple, v.v.) một cách an toàn.
2Sự khác biệt chính giữa OAuth2 và OpenID Connect (OIDC) là gì?
Sự khác biệt chính giữa OAuth2 và OpenID Connect (OIDC) là gì?
Câu trả lời
OAuth2 là một giao thức ủy quyền cho phép lấy quyền truy cập vào tài nguyên, trong khi OIDC là một lớp danh tính được xây dựng trên nền OAuth2 và bổ sung phần xác thực. OIDC giới thiệu ID token chứa thông tin về danh tính người dùng (claims) ở định dạng JWT, cho phép ứng dụng biết người dùng là ai, chứ không chỉ biết rằng họ có quyền truy cập vào một số tài nguyên nhất định.
3PKCE (Proof Key for Code Exchange) là gì và tại sao nó lại thiết yếu đối với các ứng dụng di động?
PKCE (Proof Key for Code Exchange) là gì và tại sao nó lại thiết yếu đối với các ứng dụng di động?
Câu trả lời
PKCE là một phần mở rộng bảo mật của OAuth2 giúp chống lại các cuộc tấn công đánh chặn mã ủy quyền (authorization code). Nó hoạt động bằng cách tạo một code_verifier ngẫu nhiên ở phía client, từ đó suy ra một code_challenge và gửi đi trong yêu cầu ủy quyền. Khi đổi mã lấy token, code_verifier gốc được gửi đi và máy chủ xác minh. Điều này cực kỳ quan trọng đối với các ứng dụng di động vì chúng không thể giữ bí mật một client_secret.
OAuth2 flow nào được khuyến nghị cho các ứng dụng di động React Native?
Sự khác biệt giữa access token và refresh token là gì?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn React Native khác
Kiến thức cơ bản về JavaScript
Kiến thức cơ bản về React
Kiến thức cơ bản về React Native
React Hooks
TypeScript cho React & React Native
Thành phần & API React Native
Styling & Layout trong React Native
Điều hướng React Native
Quản lý State trong React Native
Networking & API trong React Native
Lưu trữ dữ liệu bền vững
Form & Validation
Animation trong React Native
Native Modules & Bridge
Mã đặc thù theo nền tảng
Quyền & Device API
Push Notifications
Testing React Native
Debugging React Native
Build & Deployment
Expo vs React Native Bare
Tối ưu hóa hiệu suất
Quản lý bộ nhớ
Architecture Patterns
New Architecture của React Native
Các Phương Pháp Bảo Mật Tốt Nhất
Offline-First Architecture
CI/CD React Native
Monorepo & Chia sẻ mã
Chủ đề nâng cao
Vòng đời ứng dụng & Thực thi nền
Monitoring & Crash Reporting
Nắm vững React Native cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí