React Native

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

22 câu hỏi phỏng vấn·
Mid-Level
1

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.

2

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.

3

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.

4

OAuth2 flow nào được khuyến nghị cho các ứng dụng di động React Native?

5

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

Junior
25 câu hỏi

Kiến thức cơ bản về React

Junior
20 câu hỏi

Kiến thức cơ bản về React Native

Junior
22 câu hỏi

React Hooks

Junior
20 câu hỏi

TypeScript cho React & React Native

Junior
22 câu hỏi

Thành phần & API React Native

Junior
20 câu hỏi

Styling & Layout trong React Native

Junior
18 câu hỏi

Điều hướng React Native

Mid-Level
22 câu hỏi

Quản lý State trong React Native

Mid-Level
24 câu hỏi

Networking & API trong React Native

Mid-Level
20 câu hỏi

Lưu trữ dữ liệu bền vững

Mid-Level
20 câu hỏi

Form & Validation

Mid-Level
18 câu hỏi

Animation trong React Native

Mid-Level
22 câu hỏi

Native Modules & Bridge

Mid-Level
20 câu hỏi

Mã đặc thù theo nền tảng

Mid-Level
18 câu hỏi

Quyền & Device API

Mid-Level
20 câu hỏi

Push Notifications

Mid-Level
18 câu hỏi

Testing React Native

Mid-Level
20 câu hỏi

Debugging React Native

Mid-Level
18 câu hỏi

Build & Deployment

Mid-Level
20 câu hỏi

Expo vs React Native Bare

Mid-Level
18 câu hỏi

Tối ưu hóa hiệu suất

Senior
24 câu hỏi

Quản lý bộ nhớ

Senior
20 câu hỏi

Architecture Patterns

Senior
22 câu hỏi

New Architecture của React Native

Senior
24 câu hỏi

Các Phương Pháp Bảo Mật Tốt Nhất

Senior
20 câu hỏi

Offline-First Architecture

Senior
20 câu hỏi

CI/CD React Native

Senior
20 câu hỏi

Monorepo & Chia sẻ mã

Senior
18 câu hỏi

Chủ đề nâng cao

Senior
22 câu hỏi

Vòng đời ứng dụng & Thực thi nền

Mid-Level
20 câu hỏi

Monitoring & Crash Reporting

Senior
20 câu hỏi

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í