ถ้าฉันต้องทำสิ่งนี้ฉันจะใช้คุกกี้ของตัวเองในการกำหนดชื่อล็อกอินและโหลด WordPress เพื่อตรวจสอบเมื่อจำเป็นเท่านั้น
สามารถใช้คุกกี้ wordpress_logged_in_ {some-hash} เพื่อกำหนดผู้ใช้และ WordPress ใช้เพื่อกำหนดเดียวกัน คุณไม่สามารถนำไปใช้ใหม่ได้อย่างง่ายดาย แต่คุณสามารถใช้งานได้โดยไม่ต้องโหลด WordPress ในหลาย ๆ คำขอ
ตัวอย่างเช่นนี่คือแฮชคุกกี้ของฉัน (สร้างขึ้นโดยสมบูรณ์ข้อมูล แต่มีเหตุผล):
key: wordpress_logged_in_1234567890abcdef1234567890abcdef
value: admin|1234567890|abcdef1234567890abcdef1234567890
วิธีที่ WordPress รู้ว่าคุกกี้นั้นถูกต้องนั้นไม่เกี่ยวข้องทั้งหมดที่คุณต้องรู้คือว่าถูกต้องแค่ครั้งเดียวจากนั้นคุณลงชื่อด้วยลับ
ดังนั้นครั้งแรกที่ผู้ใช้ยังไม่ได้รับการพิสูจน์ คุณโหลด wp-load.php และ WP ตรวจสอบคุกกี้และบันทึกผู้ใช้ในตอนนี้คุณทำสิ่งที่คุณทำเพื่อพิสูจน์ตัวเองว่าผู้ใช้เข้าสู่ระบบแล้วคุณตั้งค่าคุกกี้ของคุณเอง คีย์สามารถเป็นอะไรก็ได้ที่คุณกำหนดเองค่าที่คุณทำลงในข้อความสรุปด้วยคีย์ลับโดยใช้ฟังก์ชัน hash_hmac
$key = ... // the key from the WP cookie
$value = ... // the value from the WP cookie
$hash = hash_hmac ( 'md5' , $key.$value , 'some secret key' );
คุณจะได้รับกลับซึ่งพูดพล่อยๆซึ่งคุณส่งกลับมาให้พวกเขาโดยใช้ setcookie () สำหรับคำขอในอนาคตพวกเขาจะส่งคุกกี้นี้กลับไปหาคุณ คุณสามารถตรวจสอบว่าก่อนอื่นและตรวจสอบมันโดยใช้ฟังก์ชั่นแฮชเดียวกันและรหัสลับ
มีเพียงคุณเท่านั้นที่สามารถสร้างแฮชได้เพราะมีเพียงคุณเท่านั้นที่รู้รหัสลับ ดังนั้นหากพวกเขาส่งแฮชที่ถูกต้องกลับมาซึ่งตรงกับสิ่งที่พวกเขาส่งสำหรับคุกกี้ WP ของพวกเขาคุณจะรู้ว่าพวกเขาได้รับการตรวจสอบกับ WP ผ่านรหัสของคุณมาก่อนและคุณจะได้รับชื่อผู้ใช้จากค่านั้น เห็นได้ชัดว่าเป็นส่วนหนึ่งของคุกกี้) จากนั้นคุณไม่ต้องโหลด WP
คีย์ลับ BTW ควรจะยาวและสุ่ม ไม่ใช่รหัสผ่านสั้น ๆ ไม่ใช่คำในพจนานุกรม เพียงแค่พูดพล่อยๆไร้สาระขนาดใหญ่ เสียงเส้นและอีกมากมายเลย คีย์ตัวอย่าง:
'GHY5hFNqq4Ntdu=3:SUp8#/+_W!- @@^@xslN*L|N+Vn;(1xo8jNyp,au$v9Ki5*'