แนวปฏิบัติที่ดีที่สุดสำหรับข้อมูล POST ใน TYPO3/Extbase (REST API)

ฉันกำลังสร้างส่วนขยายใน extbase (TYPO3 7.6 อัปเดตเป็น 8 LTS โดยเร็วที่สุด) โดยที่ฟีเจอร์หนึ่งเหมือนกับ REST API
มีคนจำเป็นต้องสร้างรายการวัตถุ / ฐานข้อมูลใหม่จากแอปสมาร์ทโฟน แอปจะส่งคำขอโพสต์พร้อมข้อมูลไปยัง URL และตรวจสอบรหัสสถานะการตอบสนอง

สิ่งแรก: จะเข้าถึงข้อมูลโพสต์ได้อย่างไร
ถ้าฉันสร้างรูปแบบที่ลื่นไหล ฉันจะได้รับออบเจ็กต์เป็นพารามิเตอร์ในการดำเนินการของฉัน ซึ่งโดยส่วนใหญ่แล้วจะมีการตรวจสอบความถูกต้องแล้ว แต่แล้วคำขอโพสต์ด้วยตนเองล่ะ
ฉันรู้ว่าสามารถรับพารามิเตอร์ตัวเดียวผ่านทาง $this->request->getArguments()
แต่นั่นเป็นวิธีที่ดีที่สุดหรือไม่
สิ่งที่สอง: จะตรวจสอบสิทธิ์ผู้ใช้ได้อย่างไรโดยปกติฉันจะใช้แบบฟอร์มเข้าสู่ระบบจาก TYPO3 และรับ ID ผู้ใช้จาก $GLOBALS['TSFE']
แต่ใน API ของฉัน ฉันไม่มีเซสชันหรือแบบฟอร์มเข้าสู่ระบบ สามารถระบุชื่อผู้ใช้และรหัสผ่านได้ในแต่ละคำขอ POST เท่านั้น ฉันจะตรวจสอบสิทธิ์ผู้ใช้ได้อย่างไรหรือควรทำอย่างไร? ฉันไม่ต้องการประดิษฐ์วงล้อขึ้นมาใหม่หาก Extbase / TYPO3 มีฟังก์ชั่นสำหรับสิ่งนั้นอยู่แล้ว


person kevinq    schedule 26.01.2017    source แหล่งที่มา


คำตอบ (1)


สำหรับการตรวจสอบสิทธิ์คุณสามารถใช้การตรวจสอบสิทธิ์พื้นฐาน HTTP โดยที่คุณ base64 เข้ารหัสชื่อผู้ใช้และรหัสผ่านและส่งผ่านส่วนหัวพร้อมกับคำขอของคุณ:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

ใน TYPO3 คุณสามารถลงทะเบียน AuthenticationProvider แบบกำหนดเองที่รับรองความถูกต้องของผู้ใช้ส่วนหน้าตามนั้น คุณควรใช้ HTTPS สำหรับสิ่งนี้ (คุณควรใช้ HTTPS ไม่ว่าในกรณีใด)

สำหรับการสร้างบันทึกตามข้อมูล POST นั้น extbase เคารพข้อมูล POST อยู่แล้ว ดังนั้น หากคุณเพียงให้ข้อมูลตามที่จะถูกส่งโดยแบบฟอร์มที่ใช้วิธีการโพสต์ ทุกอย่างควรจะทำงานได้

มันจะยุ่งยากมากขึ้นหากคุณต้องการครอบคลุมคำขอ PUT และ DELETE เช่นกัน

person Daniel    schedule 26.01.2017