Cách redirect người dùng sau khi đăng nhập trong Drupal

7th May 2022
Table of contents

Tự động chuyển hướng người dùng sau khi đăng nhập vào trang web Drupal của bạn là một yêu cầu phổ biến.

Trong Drupal 7, bạn có thể đã sử dụng hook_user_login () để thực hiện tác vụ này, nhưng với Drupal 8 đã có một cách mạnh mẽ hơn để xử lý việc này.

Các nhà phát triển Drupal của chúng tôi đã viết mã ví dụ cơ bản này để cho bạn thấy nó được thực hiện như thế nào.

Có một số module đóng góp ổn định có sẵn cung cấp chuyển hướng người dùng - thường là một trong nhiều chức năng.

Tuy nhiên, trong một số trường hợp, bạn có thể muốn viết module của riêng mình để kiểm soát chính xác những gì nó hoạt động.

Hoặc có lẽ bạn muốn kết hợp mã này với các yêu cầu cụ thể khác thành một module tùy chỉnh.

Dù lý do cụ thể của bạn là gì, đây là cách chuyển hướng người dùng theo cách thích hợp trong Drupal 8:

Đối với Drupal 8

There are several stable contrib modules available that offer redirecting users - often as one of many functionalities. In some cases however, you might want to write your own module in order to precisely control what it does. Or perhaps you would like to combine this code with other specific requirements into a custom module. Whatever your particular reason, here’s how redirect users the proper way in Drupal 8:

use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;

/**
 * Implements hook_form_FORM_ID_alter().
 */
function MYCUSTOMMODULE_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $form['#submit'][] = 'MYCUSTOMMODULE_user_login_form_submit';
}

/**
 * Custom submit handler for the login form.
 */
function MYCUSTOMMODULE_user_login_form_submit($form, FormStateInterface $form_state) {
  $url = Url::fromRoute('/your/destination/path');
  $form_state->setRedirectUrl($url);
}

Đối với Drupal 8 nói riêng, điều quan trọng cần lưu ý là chúng ta không còn sử dụng hook_user_login () nữa, vì nó sẽ ngăn các triển khai khác của hook đó được gọi.

Thay vào đó, chúng tôi đang thêm một trình xử lý gửi tùy chỉnh vào biểu mẫu đăng nhập của người dùng.

Tất nhiên đây chỉ là một điểm khởi đầu.

Bạn có thể thêm các điều kiện nhất định hoặc chuyển hướng người dùng đến các đường dẫn khác nhau tùy thuộc vào vai trò người dùng của họ.

Bạn thấy bài viết này như thế nào?
0 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.
Câu nói tâm đắc: “Điều tuyệt với nhất trong cuộc sống là làm được những việc mà người khác tin là không thể!”

Related Articles

Master list (in progress) of how to get parts of fields for use in Twig templates. I’m always having to look these up, so I thought I’d hash them out and write them down.

Litespeed Cache là plugin WordPress dùng để kết hợp với Web Server LiteSpeed nhằm tăng tốc website WordPress của bạn gấp nhiều lần

In this article, we are going to see how some tools & libraries will make people's lives easier during the development & code review process.

In this tutorial, you will learn how to improve the custom code, theme and module, and general code development by using the pre-commit hook on git

Trước khi tìm hiểu xem PHP Code Sniffer là gì thì các bạn cần phải nắm được coding convention là gì đã.