ต้องมีการตรวจสอบสิทธิ์หรือใบรับรองเพื่อดูแอป Heroku

ฉันมี API ที่ปรับใช้กับ Heroku ขณะนี้เปิดให้ทุกคนได้ชมแล้ว ฉันต้องการให้โทรศัพท์ Android ที่รู้จักเท่านั้นที่สามารถแก้ไขและเข้าถึง API ได้

ฉันไม่ต้องการให้ผู้ใช้ต้องเข้าสู่ระบบทุกครั้งที่ใช้แอป

ฉันสามารถเพิ่มใบรับรองบางประเภทลงในโทรศัพท์เพื่อยืนยันว่าเชื่อถือได้ได้หรือไม่

OAuth เป็นแนวทางที่ดีที่สุดสำหรับเรื่องนี้หรือไม่

มีวิธีที่ดีกว่าในการทำเช่นนี้เพื่อให้ผู้ใช้ไม่ต้องเข้าสู่ระบบทุกครั้งหรือไม่


person Jessica Gonzalez    schedule 16.07.2015    source แหล่งที่มา


คำตอบ (1)


นี่เป็นคำถามที่ค่อนข้างกว้าง (และดังนั้นจึงมีหลายวิธี) หากไม่ทราบภาษา/กรอบงานที่คุณใช้อยู่ ก็ยากที่จะให้คำแนะนำเฉพาะเจาะจง แต่:

  • เซิร์ฟเวอร์ของคุณสามารถออกคุกกี้หรือโทเค็นที่ไคลเอ็นต์สามารถจัดเก็บไว้ในเครื่องได้เป็นระยะเวลาหนึ่ง โทเค็นเหล่านี้ควรมีการประทับเวลาและได้รับการตรวจสอบสิทธิ์ (ใช้ไลบรารีที่ทำการตรวจสอบสิทธิ์ HMAC) เพื่อป้องกันไม่ให้ไคลเอ็นต์แก้ไขโทเค็น

  • ลูกค้าควรนำเสนอโทเค็นหรือคุกกี้นี้ในแต่ละคำขอไปยังเซิร์ฟเวอร์ของคุณผ่านส่วนหัว HTTP หรือส่วนหัว Cookie มาตรฐาน

  • คุณจะต้องมีระบบเข้าสู่ระบบเพื่อรองรับการออกโทเค็น/คุกกี้เบื้องต้น

ลูกค้ายังสามารถ OAuth กับเซิร์ฟเวอร์ของคุณ (ซับซ้อน) หรือกับบริการภายนอก (GitHub/Facebook/Google/Twitter) แต่คุณยังคงต้องมีวิธีในการติดตามสถานะนั้นบนไคลเอนต์ (ดังนั้นโทเค็น/คุกกี้)

การสนับสนุนคุกกี้ควรรวมอยู่ในไคลเอนต์ Android HTTP มาตรฐาน และเฟรมเวิร์กฝั่งเซิร์ฟเวอร์ส่วนใหญ่มีการรองรับ (หรือไลบรารีสำหรับ) คุกกี้ที่ได้รับการตรวจสอบสิทธิ์

person elithrar    schedule 17.07.2015
comment
ขอบคุณ ฉันใช้จังโก้ อย่างไรก็ตาม ฉันกำลังเรียก API ที่เหลือจากแอปพลิเคชัน Android - person Jessica Gonzalez; 17.07.2015
comment
หากคุณใช้ Django ฉันขอแนะนำให้ใช้ django.contrib.auth ด้วยคุกกี้ที่ลงนาม (แบบง่าย) หรือพิจารณาการตรวจสอบโทเค็นจาก django-rest- framework.org/api-guide/authentication/ - person elithrar; 17.07.2015