Вы получите больше радости, и это станет более безопасным, если вы создадите свою собственную конечную точку в модуле, только для регистрации пользователей.
Во-первых, в .module файле вашего модуля, использовать функции hook_menu
/*
* hook_menu
*/
function yourmodule_menu() {
$items['yourmodule/user/register'] = array(
'page callback' => 'yourmodule_user_register',
'access arguments' => array('access content'),
);
return $items;
}
Затем создайте функцию обратного вызова:
/*
* hook_menu page callback
*/
function yourmodule_user_register() {
// if you want to send the payload using content type 'application/json'
$json = file_get_contents('php://input');
$obj = json_decode($json);
// otherwise use $_POST
// if you have autoloader set up
$register = new YourmoduleUserRegister($obj);
// otherwise add in your logic here to validate and save user data
}
После проверки данных пользователя, используя drupal API методы user_load_by_mail() и user_load_by_name(), используйте user_save() для регистрации пользователя. Вы можете переименовывать исходные URL-адреса и делать другие вещи безопасности здесь.
Эта документация https://github.com/RESTful-Drupal/restful/wiki/Saving-anity-back-to-Drupal подразумевает, что можно отправить полезную нагрузку на любую конечную точку. Проблема с тем, что вы пытаетесь достичь, заключается в том, что для этого вам нужно будет войти в систему. –