Проверка двух баз данных при входе пользователя в систему с помощью пользовательского модуля


Я пытаюсь создать модуль, который будет проверять наличие двух баз данных при входе пользователя в Drupal. Если собственный вход в систему drupal прошел успешно, но у внешнего приложения нет этой учетной записи, модуль создаст учетную запись во внешнем приложении. Если учетная запись находится не на drupal, а во внешнем приложении, то drupal создаст локальную учетную запись. Если пользователь не существует ни в одной из баз данных, то вход в систему завершится ошибкой. Какой крючок(ы) мне понадобится чтобы реализовать это в модуле?

 1
Author: kiamlaluno, 2011-05-17

1 answers

Никогда не пробовал, но в принципе вы можете:

  • попробуйте hook_user(), но вы можете не уловить случай, когда пользователь существует не на drupal, а на другом вашем сайте.
  • создайте свою собственную форму входа и обратного вызова и:
    • проверьте, существует ли пользователь в drupal с помощью user_external_load()
    • если пользователь существует на вашем внешнем сайте, войдите или зарегистрируйтесь на drupal с помощью user_external_login_register()

Вы можете найти некоторые интересный код в проверке подлинности openid_authentication().

 4
Author: Manu, 2011-05-17 08:39:54