Score:0

จะเปลี่ยนเส้นทางผู้ใช้หลังจากเข้าสู่ระบบไปยังเส้นทางที่ต้องใช้ UID ได้อย่างไร

ธง ng

ฉันรู้ว่านี่ดูเหมือนเป็นคำถามพื้นฐาน:

ใน Drupal 9 ฉันจะเปลี่ยนเส้นทางผู้ใช้หลังจากเข้าสู่เส้นทาง/เส้นทางที่ต้องใช้ UID ในเส้นทางได้อย่างไร

ฉันได้ค้นคว้าและลองใช้การใช้งานที่แตกต่างกัน แต่ไม่มีตัวใดรองรับโทเค็น (กฎ, การเปลี่ยนเส้นทางหลังจากเข้าสู่ระบบ ฯลฯ )

ตัวอย่างเช่น หลังจากที่ผู้ใช้เข้าสู่ระบบแล้ว พวกเขาควรไปที่ "/homebox-page/dashboard/UID" <- ค่าตัวเลขจาก ID ผู้ใช้ปัจจุบัน

ฉันหวังว่าจะมีโมดูลง่าย ๆ เพื่อจัดการสิ่งนี้ แต่ดูเหมือนว่าฉันอาจต้องทำผ่านรหัสที่กำหนดเอง

Kevin avatar
in flag
ฟังดูเหมือนผู้สมัครสมาชิกเหตุการณ์ที่ตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ หากไม่ได้เปลี่ยนเส้นทางและรวมพารามิเตอร์ปลายทางเพื่อให้พวกเขากลับมาที่นั่นเมื่อเข้าสู่ระบบ
berliner avatar
bd flag
เนื่องจากคุณไม่ได้ระบุไว้อย่างชัดเจน: [ปลายทางการเข้าสู่ระบบ](https://www.drupal.org/project/login_destination) ดูเหมือนว่าจะรองรับโทเค็น
quantumized avatar
ng flag
ขอขอบคุณ. ฉันคิดว่าฉันจะใช้รหัสที่กำหนดเองแทนการเข้าสู่ระบบปลายทาง ซึ่งมีฟังก์ชันพิเศษมากเกินไปที่โค้ดสองสามบรรทัดสามารถจัดการได้
Score:1
ธง cn

สิ่งนี้ควรเป็นไปได้ด้วยโค้ดที่กำหนดเองสองสามบรรทัด แบบฟอร์มการเข้าสู่ระบบของผู้ใช้เปลี่ยนเส้นทางไปที่ entity.user.canonicalซึ่งต้องใช้ UID:

  ฟังก์ชันสาธารณะ submitForm (อาร์เรย์ &$form, FormStateInterface $form_state) {

    ถ้า (ว่าง ($uid = $form_state->get ('uid'))) {
      กลับ;
    }
    $account = $this->userStorage->load($uid);

    // ปลายทางถูกตั้งค่า อาจอยู่ในตัวควบคุมข้อยกเว้น
    ถ้า (!$this->getRequest()->request->has('ปลายทาง')) {
      $form_state->setRedirect(
        'entity.user.canonical',
        ['ผู้ใช้' => $account->id()]
      );
    }
    อื่น {
      $this->getRequest()->query->set('ปลายทาง', $this->getRequest()->request->get('destination'));
    }

    user_login_finalize($บัญชี);
  }
  

คุณสามารถเพิ่มตัวจัดการการส่งของคุณเองโดยทำเช่นเดียวกัน เขียนทับการเปลี่ยนเส้นทาง คุณสามารถใช้ \Drupal::currentUser() ได้เนื่องจาก user_login_finalize() ในตัวจัดการการส่งหลักตั้งค่าบริการนี้กับผู้ใช้ที่เพิ่งเข้าสู่ระบบ

quantumized avatar
ng flag
ขอขอบคุณ! ใช่ จริง ๆ แล้วฉันใช้เส้นทางตัวจัดการการส่งจาก hook_form_alter() และมันก็ทำงานได้อย่างสมบูรณ์แบบ

โพสต์คำตอบ

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