Я пытаюсь автоматизировать вход в Yahoo! в качестве поставщика OpenID с использованием cURL в PHP. Когда я это делаю, Yahoo! сообщает программе, что ей нужно включить куки. Поддержка cookie включена, и я подтвердил, что Yahoo! отправляет DK
куки, которые программа отправляет обратно.
Когда я делаю процесс вручную в Chrome, я получаю B
вместо печенья. Когда форма входа в систему отправлена, Yahoo обычно отправляет кучу других файлов cookie в ответе 302, но когда моя программа отправляет форму, Yahoo больше не отправляет файлы cookie и снова доставляет форму входа.
На этой странице я заметил ряд других вещей, которые генерируют файлы cookie (предположительно для междоменной аутентификации и отслеживания рекламы), и я попытался запросить их для получения дополнительных файлов cookie, но это не помогло. Почему Yahoo не устанавливает те же куки для моей программы, как для Chrome? Что еще я могу попробовать?
Я надеялся, что это не будет пользовательский агент, но это так. Вызов cURL устанавливал определенный пользовательский агент для внутреннего тестирования, но, очевидно, страница входа в Yahoo отличается и не работает, если не получает ожидаемого пользовательского агента. Установка этого фактического пользовательского агента во время выполнения тестов волшебным образом устранила проблему.
Других решений пока нет …