Как проверить из User Up, есть ли у Site2 сеанс на другом сервере в PHP - PullRequest
0 голосов
/ 13 марта 2012

спасибо, что прочитали это. Моя проблема выглядит следующим образом.

  1. (site1) Я звоню на сервер через Curl с моим APP ID

  2. (site2) Сервер получает идентификатор приложения и текущую $ _SESSION «Зарегистрированного пользователя» (WONT WORK)

  3. (site2) access.php Возвращает JSON {"user_token": "12312312312"}

  4. (Site1) Читает Json и анализирует его, и если user_token имеет значение NULL, я показываю КНОПКУ ВХОДА, В противном случае я ПОКАЗЫВАЮ ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ.

Но это не работает, потому что $ _SESSION не дает текущий сеанс.

Кто-нибудь знает как-нибудь обойти это?

спасибо !!

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Для того, чтобы site2 мог получить доступ к информации о сеансе, вам нужно передать cookie, ожидаемый site2.Файлы cookie используются для отслеживания сеансов.

С помощью curl можно передавать файлы cookie с заголовками.

curl_setopt($ch, CURLOPT_COOKIE, "cookiename=cookievalue");

Или также можно использовать cookiejar или cookiefile.

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFileLocation); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFileLocation);
0 голосов
/ 13 марта 2012

Ваш вызов cURL не рассматривается как принадлежащий правильному сеансу на сайте 2. Скорее всего, это так, потому что вы не отправили идентификатор сеанса - он либо в файле cookie, либо в URL. Невозможно связать запрос с сеансом, если SID не указан. Сою нужно:

  • Получите идентификатор сеанса пользователя на сайте 2 в запросе на сайт 1 . Для этого понадобится довольно тяжелая сантехника.
  • Включите этот идентификатор сеанса в ваш звонок на сайт 1
  • На сайте 1 извлечь идентификатор сеанса и использовать его для запроса cURL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...