Skip to main content

Cách chuyển hướng người dùng sau khi đăng nhập trong Drupal theo cách thích hợp

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:

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ọ.