Опаут реализации и и проблема с идентификатором сеанса

Я пытаюсь реализовать логин opAuth. php 5.4.45. Когда я начинаю свою страницу php, я звоню

if(!session_id()) session_start();

После этого, если я распечатаю session_id(), он напечатает сказать «fsdfoasdiuhf736jf732938f92» (я)

Теперь я нажимаю на вход в Facebook через OpAuth. Все хорошо, я правильно получаю данные пользователя, но на странице обратного вызова идентификатор сеанса отличается. то есть, если я напечатаю session_id (), он напечатает идентификатор, отличный от (i)

Проблема в том, что теперь, если я сохраню имя пользователя как $ _SESSION [‘user’] и перенаправлю на домашнюю страницу, то на домашней странице он снова вернется к исходному идентификатору сеанса (i). и имя пользователя там не установлено.

Каждую страницу, которая участвует, я проверяю перед началом сеанса. Я делаю что-то неправильно?

ОБНОВИТЬ

Я думаю, что имею представление о том, что может происходить. Когда я вызываю URL логина, есть исходный идентификатор сессии. Я передаю URL обратного вызова для этой функции. Когда facebook авторизует логин и перенаправляет на URL обратного вызова, может быть, php рассматривает это как запрос от facebook? что означает, что это новый сеанс, поэтому он создает новый сеанс? не такой, как тот, на котором был пользователь? И затем, когда php перенаправляет на исходную страницу, исходный сеанс снова включается? Имеет ли это смысл? Если да, то как я могу сохранить сессии одинаковыми?

2

Решение

Наконец-то разобрался с вопросом. Реальная страница с кнопкой входа в систему была не www-страницей, а на кнопке входа в систему был указан URL-адрес www. Таким образом, при формировании URL обратного вызова по умолчанию используется URL-адрес www. Это отличается от не www URL, поэтому новый сеанс формируется. Я изменил все на не www URL-адрес, и он работает, как ожидалось.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]