React Native

การยืนยันตัวตนและการจัดการเซสชัน

OAuth2/OIDC, PKCE, refresh token, การจัดเก็บเซสชันอย่างปลอดภัย, webview เทียบกับ in-app browser, การยืนยันตัวตนด้วยไบโอเมตริก

22 คำถามสัมภาษณ์·
Mid-Level
1

OAuth2 คืออะไรในบริบทของการยืนยันตัวตนบนมือถือ?

คำตอบ

OAuth2 เป็นโปรโตคอลการให้สิทธิ์มาตรฐานอุตสาหกรรมที่อนุญาตให้แอปพลิเคชันบนมือถือเข้าถึงทรัพยากรของผู้ใช้โดยไม่เปิดเผยข้อมูลรับรองของพวกเขา มันทำงานโดยมอบหมายการยืนยันตัวตนให้กับเซิร์ฟเวอร์การให้สิทธิ์ที่ออก access token ต่างจากการยืนยันตัวตนโดยตรงที่แอปพลิเคชันจัดการรหัสผ่าน OAuth2 อนุญาตให้ผู้ใช้ยืนยันตัวตนผ่านผู้ให้บริการบุคคลที่สาม (Google, Apple ฯลฯ) อย่างปลอดภัย

2

ความแตกต่างหลักระหว่าง OAuth2 และ OpenID Connect (OIDC) คืออะไร?

คำตอบ

OAuth2 เป็นโปรโตคอลการให้สิทธิ์ (authorization) ที่ช่วยให้ได้รับสิทธิ์เข้าถึงทรัพยากร ในขณะที่ OIDC เป็นชั้นข้อมูลตัวตน (identity layer) ที่สร้างขึ้นบน OAuth2 และเพิ่มการยืนยันตัวตน OIDC นำเสนอ ID token ที่มีข้อมูลเกี่ยวกับตัวตนของผู้ใช้ (claims) ในรูปแบบ JWT ทำให้แอปพลิเคชันทราบว่าผู้ใช้เป็นใคร ไม่ใช่เพียงแค่ทราบว่าผู้ใช้มีสิทธิ์เข้าถึงทรัพยากรบางอย่างเท่านั้น

3

PKCE (Proof Key for Code Exchange) คืออะไร และเหตุใดจึงจำเป็นสำหรับแอปพลิเคชันมือถือ?

คำตอบ

PKCE เป็นส่วนขยายด้านความปลอดภัยของ OAuth2 ที่ป้องกันการโจมตีแบบดักจับ authorization code มันทำงานโดยการสร้าง code_verifier แบบสุ่มที่ฝั่งไคลเอนต์ ซึ่งจะนำมาคำนวณเป็น code_challenge แล้วส่งไปพร้อมกับคำขอการให้สิทธิ์ เมื่อนำโค้ดไปแลกเป็น token จะส่ง code_verifier ต้นฉบับไปและเซิร์ฟเวอร์จะตรวจสอบ สิ่งนี้สำคัญอย่างยิ่งสำหรับแอปมือถือ เพราะแอปเหล่านี้ไม่สามารถเก็บ client_secret ให้เป็นความลับได้

4

OAuth2 flow แบบใดที่แนะนำสำหรับแอปพลิเคชันมือถือ React Native?

5

อะไรคือความแตกต่างระหว่าง access token และ refresh token?

+19 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ React Native อื่นๆ

พื้นฐาน JavaScript

Junior
25 คำถาม

พื้นฐาน React

Junior
20 คำถาม

พื้นฐาน React Native

Junior
22 คำถาม

React Hooks

Junior
20 คำถาม

TypeScript สำหรับ React และ React Native

Junior
22 คำถาม

คอมโพเนนต์และ API ของ React Native

Junior
20 คำถาม

การจัดสไตล์และเลย์เอาต์ใน React Native

Junior
18 คำถาม

การนำทางใน React Native

Mid-Level
22 คำถาม

การจัดการ State ใน React Native

Mid-Level
24 คำถาม

Networking และ API ใน React Native

Mid-Level
20 คำถาม

การคงอยู่ของข้อมูล

Mid-Level
20 คำถาม

ฟอร์มและการตรวจสอบความถูกต้อง

Mid-Level
18 คำถาม

แอนิเมชัน React Native

Mid-Level
22 คำถาม

Native Modules & Bridge

Mid-Level
20 คำถาม

โค้ดเฉพาะแพลตฟอร์ม

Mid-Level
18 คำถาม

สิทธิ์และ Device API

Mid-Level
20 คำถาม

Push Notifications

Mid-Level
18 คำถาม

การทดสอบ React Native

Mid-Level
20 คำถาม

การ Debug React Native

Mid-Level
18 คำถาม

Build & Deployment

Mid-Level
20 คำถาม

Expo vs React Native Bare

Mid-Level
18 คำถาม

การเพิ่มประสิทธิภาพ

Senior
24 คำถาม

การจัดการหน่วยความจำ

Senior
20 คำถาม

Architecture Patterns

Senior
22 คำถาม

React Native New Architecture

Senior
24 คำถาม

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

Senior
20 คำถาม

Offline-First Architecture

Senior
20 คำถาม

CI/CD React Native

Senior
20 คำถาม

Monorepo และการแชร์โค้ด

Senior
18 คำถาม

หัวข้อขั้นสูง

Senior
22 คำถาม

วงจรชีวิตแอปและการทำงานเบื้องหลัง

Mid-Level
20 คำถาม

Monitoring & Crash Reporting

Senior
20 คำถาม

เชี่ยวชาญ React Native สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี