Php curl авто-аутентификация не устанавливает сеанс - PullRequest
2 голосов
/ 25 мая 2011

Я использую функцию php curl для автоматической аутентификации, и она работает нормально. Но я не могу перейти на другую страницу в том же домене, и я думаю, что сессия не установлена. Помогите мне, пожалуйста, спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 25 мая 2011

Чтобы сохранить информацию о сеансе, вам нужно сообщить CURL, где хранить данные Cookie.Вы можете сделать это с параметрами CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR, установленными с помощью curl_setopt .

EDIT Вот пример:

curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt")
1 голос
/ 25 мая 2011

С curl и rest-сервисами у вас нет сессии. Таким образом, в качестве решения ваша операция аутентификации должна возвращать session_id, и вы должны передать этот session_id в следующем запросе, где запрос подписан. После этого вы должны реализовать дополнительные проверки безопасности с помощью session_id.

Лучший способ для меня - интегрировать аутентификацию OAuth2, когда у вас есть access_token, expired_in и refresh_token. Refresh_token является необязательным параметром, и вы можете использовать его, когда пытаетесь получить новый access_token с помощью refresh_token, когда срок действия access_token истек.

1 голос
/ 25 мая 2011

Вам может потребоваться отправить файл cookie сеанса при переходе на другую страницу, чтобы сохранить состояние

См .: Поддержка сеанса PHP при использовании CURL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...