Score:3

มีเหตุการณ์ที่เกี่ยวข้องกับการสร้างคุกกี้เซสชั่นสำหรับผู้ใช้ที่ไม่ระบุตัวตนหรือไม่?

ธง cn

ฉันจำเป็นต้องตั้งค่าคุกกี้เพิ่มเติมเมื่อใดก็ตามที่ผู้ใช้ที่ไม่ระบุชื่อได้รับคุกกี้เซสชัน สิ่งนี้เกิดขึ้นเมื่อเลือกแง่มุมใน Search API เป็นต้น กรณีการใช้งานเฉพาะคือฉันต้องการชุดคุกกี้พิเศษสำหรับการผสานรวมของบุคคลที่สามโดยเฉพาะ (GTranslate) hook_user_login ไม่ตรงตามกรณีการใช้งานเนื่องจากผู้ใช้ไม่ได้เข้าสู่ระบบจริง ๆ แต่ได้รับคุกกี้เซสชันเมื่อเลือกแง่มุม มีเหตุการณ์บางอย่างที่ฉันสามารถสมัครรับข้อมูลเมื่อเหตุการณ์นั้นเกิดขึ้น เพื่อที่ฉันจะสามารถแทรกคุกกี้ที่กำหนดเองของฉันได้หรือไม่?

4uk4 avatar
cn flag
ฉันไม่คิดว่าจะมีกิจกรรมเฉพาะ แต่คุณสามารถสมัครรับ [KernelEvents::RESPONSE](https://api.drupal.org/api/drupal/vendor%21symfony%21http-kernel%21KernelEvents.php/constant /KernelEvents%3A%3ARESPONSE) และตั้งค่าคุกกี้ในส่วนหัวของการตอบสนอง
cn flag
@ 4k4: หากคุณสามารถสรุปได้ว่าคุณควรพิจารณาโพสต์นั้นเป็นคำตอบ ฉันจะลองทำดูในวันนี้ แต่ฉันอยากจะให้เครดิตคุณอย่างถูกต้องหากได้ผล ;)
Score:0
ธง ru

คุณสามารถลองใช้ผู้สมัครสมาชิกกิจกรรมการตอบกลับเหตุการณ์ สำหรับเช่น: สร้างไฟล์ใน CUSTOM_MODULE/src/EventSubscriber/SetSessionCookieSubscriber.php

เนมสเปซ Drupal\CUSTOM_MODULE\EventSubscriber;

ใช้ Symfony\Component\HttpKernel\Event\FilterResponseEvent
ใช้ Symfony\Component\HttpKernel\KernelEvents
ใช้ Symfony\Component\EventDispatcher\EventSubscriberInterface;
ใช้ Symfony\Component\HttpFoundation\Request;

คลาส SetSessionCookieSubscriber ใช้ EventSubscriberInterface {
  ฟังก์ชั่นสาธารณะ onResponse (FilterResponseEvent $event) {
    /** @var คำขอ $request */
    $request = $event->getRequest();
    // ตรวจสอบว่าเป็นคำขอที่ถูกต้องหรือไม่ เช่น โพสต์ facets
    $session = $request->getSession();
    // ตรวจสอบค่าเซสชัน
    $response = $event->getResponse();
    /** รหัสที่กำหนดเองของคุณอยู่ที่นี่ */
    $response->headers->setCookie(คุกกี้ใหม่(...));
  }
  
  ฟังก์ชั่นคงที่สาธารณะ getSubscribedEvents () {
    $events[KernelEvents::RESPONSE][] = ['onResponse'];
    ส่งคืนเหตุการณ์ $;
  }
}

ลงทะเบียนในไฟล์บริการของคุณ CUSTOM_MODULE.services.yml

บริการ:
  CUSTOM_MODULE.setsessioncookie:
  คลาส: Drupal\CUSTOM_MODULE\EventSubscriber\SetSessionCookieSubscriber
  แท็ก:
    - { ชื่อ: event_subscriber }
4uk4 avatar
cn flag
ฉันได้เพิ่มความคิดเห็นของฉันในรหัส
Razeem Ahmad avatar
ru flag
ขอบคุณ 4K4 สำหรับการแก้ไข

โพสต์คำตอบ

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