การยืนยันตัวตนและการจัดการเซสชัน
OAuth2/OIDC, PKCE, refresh token, การจัดเก็บเซสชันอย่างปลอดภัย, webview เทียบกับ in-app browser, การยืนยันตัวตนด้วยไบโอเมตริก
1OAuth2 คืออะไรในบริบทของการยืนยันตัวตนบนมือถือ?
OAuth2 คืออะไรในบริบทของการยืนยันตัวตนบนมือถือ?
คำตอบ
OAuth2 เป็นโปรโตคอลการให้สิทธิ์มาตรฐานอุตสาหกรรมที่อนุญาตให้แอปพลิเคชันบนมือถือเข้าถึงทรัพยากรของผู้ใช้โดยไม่เปิดเผยข้อมูลรับรองของพวกเขา มันทำงานโดยมอบหมายการยืนยันตัวตนให้กับเซิร์ฟเวอร์การให้สิทธิ์ที่ออก access token ต่างจากการยืนยันตัวตนโดยตรงที่แอปพลิเคชันจัดการรหัสผ่าน OAuth2 อนุญาตให้ผู้ใช้ยืนยันตัวตนผ่านผู้ให้บริการบุคคลที่สาม (Google, Apple ฯลฯ) อย่างปลอดภัย
2ความแตกต่างหลักระหว่าง OAuth2 และ OpenID Connect (OIDC) คืออะไร?
ความแตกต่างหลักระหว่าง OAuth2 และ OpenID Connect (OIDC) คืออะไร?
คำตอบ
OAuth2 เป็นโปรโตคอลการให้สิทธิ์ (authorization) ที่ช่วยให้ได้รับสิทธิ์เข้าถึงทรัพยากร ในขณะที่ OIDC เป็นชั้นข้อมูลตัวตน (identity layer) ที่สร้างขึ้นบน OAuth2 และเพิ่มการยืนยันตัวตน OIDC นำเสนอ ID token ที่มีข้อมูลเกี่ยวกับตัวตนของผู้ใช้ (claims) ในรูปแบบ JWT ทำให้แอปพลิเคชันทราบว่าผู้ใช้เป็นใคร ไม่ใช่เพียงแค่ทราบว่าผู้ใช้มีสิทธิ์เข้าถึงทรัพยากรบางอย่างเท่านั้น
3PKCE (Proof Key for Code Exchange) คืออะไร และเหตุใดจึงจำเป็นสำหรับแอปพลิเคชันมือถือ?
PKCE (Proof Key for Code Exchange) คืออะไร และเหตุใดจึงจำเป็นสำหรับแอปพลิเคชันมือถือ?
คำตอบ
PKCE เป็นส่วนขยายด้านความปลอดภัยของ OAuth2 ที่ป้องกันการโจมตีแบบดักจับ authorization code มันทำงานโดยการสร้าง 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
การจัดการ State ใน React Native
Networking และ API ใน React Native
การคงอยู่ของข้อมูล
ฟอร์มและการตรวจสอบความถูกต้อง
แอนิเมชัน React Native
Native Modules & Bridge
โค้ดเฉพาะแพลตฟอร์ม
สิทธิ์และ Device API
Push Notifications
การทดสอบ React Native
การ Debug 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 และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี