Score:0

โหลดหน้าผู้ใช้ผิดหลังจาก user_login_finalize()/user_logout()

ธง de

ฉันมีโมดูลที่กำหนดเองสำหรับการเข้าสู่ระบบของบุคคลที่สามที่เรียก user_login_finalize() หลังจากการตรวจสอบสิทธิ์ และ user_logout() เมื่อออกจากระบบ ฟังก์ชันทั้งสองนี้ใช้งานได้ ยกเว้นในกรณีที่ผู้ใช้เข้าสู่ระบบ/ออกจากเส้นทาง /user ใน Drupal หน้าเว็บจะโหลดเวอร์ชันของหน้าเว็บ /user ที่ควรแสดงผลก่อนเข้าสู่ระบบ/ออกจากระบบ ดังนั้นเมื่อเข้าสู่ระบบ หน้าจะแสดงคำเตือนที่ไม่ได้รับอนุญาตซึ่งมีอยู่ในตอนแรก จนกว่าหน้าจะโหลดซ้ำ เมื่อออกจากระบบ หน้านี้จะแสดงข้อมูลโปรไฟล์ผู้ใช้ที่มีเมื่อผู้ใช้เข้าสู่ระบบ

รหัสนี้ทำงานในสมาชิกเหตุการณ์สำหรับ KernelEvents::REQUEST (การตรวจสอบความถูกต้องขององค์กรของฉันทำงานในลักษณะที่สถานะว่าผู้ใช้ได้รับการรับรองความถูกต้องหรือไม่สามารถเปลี่ยนนอกไซต์ Drupal ของฉันได้ตลอดเวลาและจำเป็นต้องตรวจสอบก่อนที่จะโหลดเนื้อหา)

ฉันไม่แน่ใจว่าปัญหาเกี่ยวข้องกับการเปลี่ยนเส้นทางการเข้าสู่ระบบของบุคคลที่สามหรือแคชของ Drupal แต่มีอย่างอื่นที่ต้องล้างข้อมูลหรือรีเซ็ตหลังจากใช้ฟังก์ชันเหล่านี้หรือไม่ ฉันใช้มันโดยเจตนาเพื่อหลีกเลี่ยงการเขียนโค้ดซ้ำจากสิ่งที่มีอยู่แล้วใน Drupal

Jaypan avatar
de flag
ฟังดูเหมือนปัญหาการแคช โดยเฉพาะแคชหน้านิรนาม ลองปิดใช้งานโมดูลนั้นและดูว่าปัญหาหายไปหรือไม่ หากเป็นเช่นนั้น คุณอาจต้องตั้งค่าบริบทของแคช หรือแม้กระทั่งปิดใช้งานการแคชสำหรับหน้านั้น
4uk4 avatar
cn flag
คุณใส่รหัสนี้ที่ไหน โดยปกติสิ่งนี้จะทำงานในตัวควบคุมหรือตัวจัดการการส่งที่ส่งคืนการเปลี่ยนเส้นทางเพื่อสร้างหน้าที่ถูกต้องสำหรับผู้ใช้ที่เพิ่งเข้าสู่ระบบหรือออกจากระบบ
apaderno avatar
us flag
เมื่อผู้ใช้ออกจากระบบ พวกเขายังคงถูกเปลี่ยนเส้นทางไปที่ /user หรือ URL ที่ปรากฏในแถบที่อยู่ของเบราว์เซอร์แตกต่างกัน แต่หน้าที่แสดงผลคือหน้าโปรไฟล์ผู้ใช้หรือไม่ ในกรณีแรก การเปลี่ยนเส้นทางเป็นสาเหตุนั้น ในกรณีที่สอง เป็นปัญหาเกี่ยวกับแคชของเพจ
Anton avatar
de flag
ฉันอัปเดตคำอธิบายเพื่อระบุความคิดเห็น/คำถามกล่าวโดยย่อ นี่คือโมดูลที่กำหนดเอง และฉันเรียกรหัสในสมาชิกเหตุการณ์สำหรับ KernelEvents::REQUEST นี่เป็นปัญหาการแคชของหน้า /user เท่าที่ฉันสามารถบอกได้ มีวิธีปิดการใช้งานแคชของผู้ใช้ที่ไม่ระบุตัวตนสำหรับหน้า/เส้นทางนี้หรือไม่?
Score:1
ธง cn

รหัสนี้ทำงานในสมาชิกเหตุการณ์สำหรับ KernelEvents::REQUEST (my การรับรองความถูกต้องขององค์กรทำงานในแบบที่สถานะของ ผู้ใช้ได้รับการรับรองความถูกต้องหรือไม่สามารถเปลี่ยนนอกไซต์ Drupal ของฉันได้ที่ ตลอดเวลาและต้องมีการตรวจสอบก่อนที่จะโหลดเนื้อหา)

หากสถานะการรับรองความถูกต้องเปลี่ยนไป ให้ตั้งค่าการตอบสนองการเปลี่ยนเส้นทางเพื่อสร้างหน้าใหม่หลังจากที่คุณสร้างเซสชันใหม่หรือทำลายเซสชันที่มีอยู่ผ่านฟังก์ชันโมดูลผู้ใช้ที่คุณกล่าวถึง:

$response = ใหม่ RedirectResponse(Url::fromRoute('<current>')->toString());
$event->setResponse($response);

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา