ฉันกำลังทำงานกับแอปพลิเคชัน ajax ที่จะถูกฝังอยู่ในหน้าเวิร์ดเพรส แอป Ajax แลกเปลี่ยนข้อมูลกับ servlets ที่ทำงานบน Tomcat ตอนนี้เซิร์ฟเล็ตต้องการวิธีในการพิจารณาว่าคำขอมาจากผู้ใช้ที่ล็อกอินเข้าสู่ wordpress หรือไม่ และถ้าผู้ใช้ล็อกอิน, servlets จะต้องสามารถกำหนด id ผู้ใช้เพื่อให้สามารถสืบค้นฐานข้อมูลได้ หากผู้ใช้ไม่ได้เข้าสู่ระบบคำขอจะถูกปฏิเสธ
ดังนั้นในคำอื่น ๆ ฉันต้องให้ servlet ดำเนินการตามคำขอเฉพาะเมื่อผู้ใช้ที่ทำให้เกิดการร้องขอนั้นถูกล็อกอินเข้าสู่ wordpress (เวอร์ชั่น 3.3.x) ทั้ง servlet (tomcat) และ wordpress (apache2) ทำงานบนเครื่องฟิสิคัลเดียวกันและแชร์ฐานข้อมูลเดียวกัน
ในทางทฤษฎีสิ่งนี้สามารถแก้ไขได้อย่างง่ายดายโดยทำสิ่งต่อไปนี้:
- ในระหว่างการเข้าสู่ระบบ wordpress โทเค็นของผู้ใช้บางคนจะถูกเก็บไว้ในตัวแปรจาวาสคริปต์
- แอป ajax ส่งต่อโทเค็นของผู้ใช้ไปยังเซิร์ฟเล็ตในทุกการโทร
- servlets ใช้โทเค็นเพื่อเคียวรี wordpress ถ้ามันถูกต้อง (เช่นถ้าผู้ใช้เข้าสู่ระบบ) และดำเนินการหรือปฏิเสธคำขอ
คำถามคือวิธีนี้สามารถนำมาใช้ในด้าน WordPress?
เพราะสิ่งที่ทำให้ทฤษฎีมีความซับซ้อนมากคือความจริงที่ว่าฉันยังไม่ได้เขียนโปรแกรม php
ก่อนอื่นฉันคิดว่าจะส่งคุกกี้ wordpress_logged_in (auth) ไปยัง servlet และให้ servlet query wordpress ถ้าคุกกี้ auth ยังคงใช้ได้ แต่ดูเหมือนว่าไม่สามารถทำได้เนื่องจาก wp_validate_auth_cookie () ล้มเหลวเสมอแม้ว่าจะมีการส่งผ่านข้อมูลคุกกี้ของผู้ใช้ที่เข้าสู่ระบบ โซลูชันอื่นอาจพัฒนาปลั๊กอินที่เก็บ sessionid และ userid ไว้ในตารางซึ่งสามารถสอบถามได้ง่ายโดยเซิร์ฟเล็ต หรืออาจจะมีวิธีอื่น ๆ ...