Tạo một trang đăng nhập thay thế khác ngoài / user / login


7

Tôi đã quản lý để làm điều này trong Drupal 7 với mã sau:

function my_special_paths_menu() {

    $items['authenticate'] = array(
        'title' => 'Log in',
        'page callback' => 'drupal_get_form',
        'page arguments' => array('user_login'),   
        'access callback' => 'user_is_anonymous',   
      );
     return $items;
    }

Câu hỏi của tôi, mã này đã hoàn thành hay nó thiếu một số cấu hình trong mảng mục menu? Mã có an toàn không?

Câu trả lời:


7

Có, mã của bạn đã hoàn tất và an toàn như mẫu đăng nhập mặc định.

Tuy nhiên, hãy nhớ rằng nếu bạn muốn thay thế /user/loginbiểu mẫu, bạn sẽ cần phải suy nghĩ về tất cả các tình huống mà người dùng có thể kết thúc ở đó (ví dụ: [site:login-url]mã thông báo, các mô-đun khác, v.v.) và xử lý chúng một cách thích hợp thông qua chuyển hướng hoặc truy cập phản hồi bị từ chối (ví dụ: nếu bạn sẽ là người dùng đã đăng ký duy nhất trên trang web).

Dưới đây là những điều cơ bản:

Chuyển hướng

Nếu bạn muốn chuyển hướng người dùng /user/loginđến /authenticatevì lý do gì, bạn sẽ hoặc là cần phải sử dụng Redirect module, hoặc thực hiện hook_menu_alter()trong mô-đun tùy chỉnh của bạn:

function YOUR_MODULE_menu_alter(&$items) {
  $items['user/login']['page callback'] = 'drupal_goto';
  $items['user/login']['page arguments'] = 'authenticate';
}

Thay thế

Nếu bạn muốn /user/loginkhông thể truy cập được cho tất cả người dùng khác, bạn chỉ cần vô hiệu hóa đường dẫn đó bằng cách thực hiện lại hook_menu_alter()trong mô-đun tùy chỉnh của mình:

function YOUR_MODULE_menu_alter(&$items) {
  $items['user/login']['access callback'] = FALSE;
}

Tuy nhiên, hãy nhớ rằng bạn sẽ phải kiểm tra mọi thứ kỹ lưỡng và đảm bảo rằng bạn không có mô-đun phụ thuộc vào hệ thống /user/login, cũng như không có quy trình công việc nào sẽ bị ảnh hưởng (ví dụ: [site:login-url]mã thông báo).

Hi vọng điêu nay co ich.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.