มีการสนับสนุนเซสชันของลูกค้าผ่าน REST API ของ Magento หรือไม่


9

ฉันกำลังขยายฟังก์ชั่นสิ่งที่อยากได้ไปยัง REST API ของ Magento มันจะดีในการเข้าถึงเซสชันของลูกค้า Magento สนับสนุนการเข้าถึงเซสชันของลูกค้าผ่าน REST หรือไม่


เหตุใดคุณจึงต้องเข้าถึงเซสชัน รายการสิ่งที่ปรารถนาจะถูกจัดเก็บในฐานข้อมูลและมีการอ้างอิงถึงรหัสลูกค้า .. หรือบางทีฉันอาจจะพลาดบางอย่าง
Marius

เพราะฉันไม่มีรหัสลูกค้า
Ryre

2
โอเค ... ตะเข็บยุติธรรม ... ขอโทษที่ฉันไม่รู้ :)
Marius

ไม่ต้องห่วง! คำถามของฉันสั้น ๆ ดังนั้นอาจมีคำอธิบายเล็กน้อยตามลำดับ
Ryre

เมื่อฉันอ่าน Magento REST API Documentation ไม่มีการเข้าถึงเซสชันผ่าน REST คุณคิดจะใช้ oAuth ไหม
Anna Völkl

คำตอบ:


5

ตามที่กล่าวไว้ในความคิดเห็นของฉันข้างต้นฉันอยากจะแนะนำให้ผู้ใช้เข้าสู่ระบบด้วย oAuth เพื่อเข้าถึงการเข้าถึงรหัสลูกค้า หากต้องการตอบคำถามของคุณ: ไม่คุณไม่สามารถเข้าถึงเซสชันลูกค้าได้

การไหลสามารถเป็นดังนี้:

  1. ผู้ใช้เข้าถึงเว็บไซต์บุคคลที่ 3 ที่คุณต้องการมอบฟังก์ชันการใช้สิ่งที่ปรารถนา
  2. คำขอผู้ใช้สิ่งที่อยากได้ / ฟังก์ชั่นสิ่งที่อยากได้ (โดยการเพิ่มรายการใหม่ลงในสิ่งที่อยากได้แสดงสิ่งที่อยากได้ ฯลฯ )
  3. ผู้ใช้ลงชื่อเข้าใช้ผ่าน oAuth ในร้านวีโอไอพีของคุณ
  4. รับรหัสลูกค้าจาก oAuth
  5. ดำเนินการกับฟังก์ชั่นสิ่งที่อยากได้ของคุณ

สำหรับการอนุญาตผู้ใช้ฉันขอแนะนำให้คุณปฏิบัติตามหัวข้อ "การขอโทเค็นที่ไม่ได้รับอนุญาต" และ "การอนุญาตผู้ใช้" ในหน้านี้


คำตอบของคุณเป็นคนแรกที่เสนอโซลูชันที่ใช้การได้!
Ryre

วิธีที่ได้รับการยอมรับในการรับรหัสลูกค้าจาก oAuth คืออะไร ฉันไม่เห็นฟังก์ชั่นดังกล่าวในเอกสารของพวกเขา
Stepan Mazurov

ฉันคิดออกแล้ว สำหรับใครก็ตามที่มีปัญหาเดียวกันตรวจสอบให้แน่ใจว่าบทบาท "ลูกค้า" ของคุณมีสิทธิ์เข้าถึง API
Stepan Mazurov

สวัสดี @Anna Völklฉันจะรับรหัสลูกค้าใน magento REST api ได้อย่างไร เพราะเมื่อฉันส่งโทเค็นลูกค้าในส่วนหัวฉันต้องการรหัสลูกค้าซึ่งโทเค็นลูกค้าเป็นของโทเค็นลูกค้าเฉพาะนั้นในวีโอไอพี 2
Aditya Shah

API ผลิตภัณฑ์ของฉันส่งคืนผลิตภัณฑ์หากฉันลองกับลูกค้าฉันได้รับข้อผิดพลาด url ของฉัน: 192.168.1.65/anusthana/api/rest/customersข้อผิดพลาด: snag.gy/0jbhTr.jpg คุณสามารถช่วยฉันได้
@Anna

6

เลขที่

เซสชันลูกค้าเชื่อมโยงกับคุกกี้ส่วนหน้าที่ลูกค้าใช้งานอยู่ หากคุณใช้เซสชันที่อิงกับไฟล์สิ่งเหล่านี้จะถูกเก็บไว้ภายใต้ var / เซสชัน / - หากคุณใช้ฐานข้อมูลเป็นที่จัดเก็บเซสชันสิ่งนี้จะถูกเก็บไว้ใน core_session

ในกรณีใด ๆ ที่จะสามารถเข้าถึงได้คุณจะต้องรู้ session_id จากลูกค้าซึ่งโดยการออกแบบควรอยู่ระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ * 1)

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

อีกสิ่งหนึ่งที่ควรทราบคือเซสชันที่คุณกำหนดไว้เพื่อสื่อสารกับ API นั้นแยกจากเซสชันที่ลูกค้ามี

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

* 1) คุณอาจจะสามารถอ่านเซสชั่นคุกกี้ที่ใช้อยู่ในปัจจุบันและบันทึกลงในฐานข้อมูลเพื่อการประมวลผลต่อไป แต่คุณจะต้องมีข้อมูลอื่น ๆ เพื่อผูกกลับไปยังตรรกะที่คุณกำลังพยายามนำมาใช้ดังนั้นฉันจึงไม่ ดูการใช้งานได้ที่นี่


ขอบคุณสำหรับคำตอบที่ดี เป้าหมายสุดท้ายของฉันคือการเข้าถึงข้อมูลลูกค้าผ่าน REST ที่ลูกค้าเห็นเมื่อลงชื่อเข้าใช้ส่วนหน้า: ประวัติการสั่งซื้อที่อยู่ที่บันทึกไว้ ฯลฯ
Ryre

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

เดาของคุณอยู่ใกล้สวย! ฉันกำลังช่วยขยายบริการ REST พื้นฐานสำหรับแอพ iphone ส่วนหน้า oauth แก้ปัญหาที่ฉันมีอยู่ ขอโทษที่ไม่ถามคำถามที่ชัดเจน
Ryre

1

ฉันคิดว่าสิ่งที่คุณกำลังมองหาคือการผสมผสานระหว่าง REST API และ OAuth ของ Magento ด้วย OAuth ผู้ใช้ส่วนหน้าสามารถลงชื่อเข้าใช้สภาพแวดล้อม Magento ให้แอปพลิเคชัน (บุคคลที่สาม) ของคุณและเข้าถึงข้อมูลลูกค้าของเขาเช่นประวัติการสั่งซื้อ

เท่าที่ฉันรู้ว่าสิ่งนี้ใกล้เคียงกับที่คุณสามารถเข้าถึงเซสชันลูกค้าโดยใช้ API

ตรวจสอบเอกสารวีโอไอพีนี้ในเรื่องและบทความที่ดีนี้โดยInchoo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.