Как определить авторизированного пользователя в друпале из внешнего сайта

Главные вкладки

Аватар пользователя GostJr GostJr 14 октября 2011 в 15:07

Приветствую всех. Столкнулся с такой проблемой. Идея вот в чем, на одной машине человек авторизируется на друпаловском сайте(\www\drupal\). Потом переходит на другую страницу не относящуюся к друпалу(www\folderX\fileX.php - страница не находится в модуле друпала и вообще к нему не относится). Как можно определить логин зашедшего юзера на этой внешней от друпала странице...
Делаю, сложно и не правильно: Сначала определяю IP адрес юзера, потом достаю его uid из друпаловской таблицы Sessions, а потом достаю уже самого пользователя из таблицы Users. Работает не всегда корректно, т.к. на работе некоторые компы заходят через прокси, получается в сессиях несколько человек(uid) с одинаковыми IP. Как это можно реализовать? Буду очень признателен.

Комментарии

Аватар пользователя CASHMAR CASHMAR 14 октября 2011 в 16:17

Как насчёт записи друпалом uid залогиневшегося юзера в стороннюю БД (к которой имеет доступ www\folderX\fileX.php)?

  1. В settings.php пишем доступы к новой БД.
  2. В hook_install создаём таблицу в этой БД (uid, status).
  3. В hook_user перехватываем логин, подключаемся к удалённой БД (db_set_active()), пишем uid и status.
  4. В hook_user перехватываем логаут, подключаемся к удалённой БД (db_set_active()), обновляем status по uid.
  5. Переключаемся обратно на друпал БД (db_set_active('default');).
  6. Чистим грязь в hook_uninstall.