2010-08-30 2 views
1

Я работаю над конкретным случаем, когда аутентификация пользователя является внешней с сайта Drupal. Внешний сайт будет аутентифицировать пользователя и вернуть базовые данные, связанные с пользователем, в систему Drupal.Обработка аутентификации пользователей для внешних пользователей без данных, находящихся в системе Drupal

Уловка здесь заключается в том, что у нас не должно быть никаких пользовательских данных в БД Drupal. Я проверил user_external_login_register(), но он не работает, поскольку он сохраняет пользовательские данные в базе данных. Так кто-то может направить меня, как это можно сделать.

Большое спасибо заранее, Виней

ответ

2

user_external_login (http://api.drupal.org/api/function/user_external_login/6), вероятно, так близко, как вы можете получить. Он игнорирует пароль, хранящийся в таблице пользователей drupal, поэтому при необходимости пароли могут быть случайными.

Вы также можете смять кучу данных на global $user, чтобы получить видимость обычного входа.

Но вы доберетесь до этого только в среде drupal без сохранения информации о пользователе в базе данных. Многие основные операции вызывают функцию user_load(), которая зависит от полезной информации, доступной в базе данных.

Например, большинство пользовательских представлений («Мои группы», «Мои последние сообщения» и т. Д.) Вызывают user_load вместо доступа к глобальному объекту $ user.

Смежные вопросы