Как определить состояние авторизации пользователя на другом НЕ Drupal сайте?

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

Аватар пользователя NadejhdaAdamovaN NadejhdaAdamovaN 10 июля 2013 в 8:20

Допустим. есть сайт site1.com на Drupal. И есть сайт site2.com не Drupal.
Как определить юзеру, зашедшему на site2.com свое состояние на site1.com?
Site2.com имеет доступ к БД с юзерами сайта site1.com.
test
test

Комментарии

Аватар пользователя diepower diepower 10 июля 2013 в 9:00

я аналогичное делал нее на друпаловских сайтах...
принцип примерно такой, 2 варианта:

1) пользователь заходит на сайт1.. тут же делается проверка на авторизацию, в которой делается запрос на какой-то специальный скрипт на сайте2.. этот скрипт должен ответить авторизован ли.. и если да то кто именно....

2) при авторизации на сайт2 он заносит инфу в базу сайт1 что пользователь авторизован.. возможно там время выставляется в бд.. я не знаю.. не смотрел как происходит проверка авторизации на друпале...

на друпале не делал такого.. но думаю придется модуль авторизации ковырять...
палками не бить если метод топорный=)))

Аватар пользователя NadejhdaAdamovaN NadejhdaAdamovaN 10 июля 2013 в 9:32

Проблема в том, что кукисы не передаются между разными доменами.
Т.е. непонятно, кто с какого браузера откуда делает запрос. Т.е. понятно, но другой сайт эту сессию не перехватывает.
Сама уже запуталась немного. )
Поэтому непонятно, как они будут проверять? У каждого ведь генерируется заново уникальный ID сессии и он не перехватывается между разными доменами.
Я пробовала через bootstrap.inc, но он всегда возвращает юзера с ID = 0.

Аватар пользователя duozersk duozersk 10 июля 2013 в 12:17

На site1.com пишите модуль, регистрируете там колбек, на который будет обращаться site2.com; резальтатом колбека отдаетё инфу о залогиненном пользователе (в формате json, например). Сайт site2.com должен будет стучаться на site1.com JS-кодом (чтобы запрос шёл от браузера юзера, открывающего страницы site2.com).

Аватар пользователя NadejhdaAdamovaN NadejhdaAdamovaN 10 июля 2013 в 17:06

НО мне кажется, здесь непонятно как идентифицировать юзера-анонима, до выяснения его статуса. Допустим, несколько человек с одного IP сидят. Т.е. залогинившись, у меня появляются имя, UID, но сесии у меня-то свои уникальные.
Тут захожу с другого сайта, пытаюсь обратиться к функции модуля, но как он поймет, что это я? Чем меня можно идентифицировать? Ни UID, ни имени, ни IP, ни сесии и кукисов у меня нету.

Аватар пользователя duozersk duozersk 10 июля 2013 в 17:23

Это всё от того, что вы

  • не понимаете или не осознаёте, что же вам реально нужно
  • не понимаете, что вам пишут в ответ

Тот вариант, что я вам отписывал выше, позволит вам на вашем втором, не друпал сайте, показать информацию о залогиненном пользователе с первого, друпал-сайта. И работать он будет, как и выше указано, через вызов колбека первого сайта с помощью JS - JavaScript. Почему он будет работать - потому что вызов пойдет от браузера пользователя (в котором есть все нужные "кукисы" и так далее по списку того, чего у вас "нету"), а не от сервера со вторым сайтом.

Аватар пользователя NadejhdaAdamovaN NadejhdaAdamovaN 11 июля 2013 в 11:15

2duozersk
Это все от того, что я с Джава на "Вы". Поэтому не сразу поняла, что есть возможность. НО это надо еще проверить.
Ну, в любом случае, хоть и с такими понтами, благодарствую за наводку. )

Аватар пользователя diepower diepower 10 июля 2013 в 17:36

"duozersk" wrote:
, что я вам отписывал выше, позволит вам на вашем втором, не друпал сайте, показать информацию о залогиненном пользователе с первого, друпал-сайта. И работать он будет, как и выше указано, через вызов колбека первого сайта с помощью JS - JavaScript. Почему он будет работать - потому что вызов пойдет от браузера пользователя (в котором есть все нужные "кукисы" и так далее по списку того, чего у вас "нету"), а не от сервера со вторым сайтом.

да вслушайтесь в то что говорят.. на 1ом сервере стоит скрипт.. который выдает имя авторизованного пользователя..
на другом происходит запрос к этому скрипту.. получает данные - имя авторизованного пользователя.. вот и все...

Аватар пользователя NadejhdaAdamovaN NadejhdaAdamovaN 11 июля 2013 в 14:26

Вы до этого самолично написали "с помощью JS - JavaScript" и я отвечала вам, так что можно было и правильно понять. В магазине говорю "кола ноль-пять", особых проблем не возникало. Наверное тут просто форум очень высокоинтеллектуальный. )

Аватар пользователя duozersk duozersk 11 июля 2013 в 14:27

Да я-то готов правильно понимать... были сомнения на счёт того, что вы сами это правильно понимаете - извините, если что не так Smile