Всем добрый день. Возникла необходимость сделать авторизацию на сайте, подгружающем recaptcha в hidden поле формы. Имеется 2 попытки ввести логин и пароль, с 3 попытки, как обычно, показывается картинка. При 1 и 2 попытке на сервер отправляются куки с единственной сессией и данные в JSON формате: {"token":"gWAmz8OzvLROMD5v0Va4IJnqFPD4G5dpzoFIXgSU", "login":"login", "password":"pass", "session_id":null, "recaptcha_challenge_field":"03AHJ_VutaHBYgm9lraxZjburS8bCnehqxN4hbJZ8wNJXgwp_n2p8GrY8YGtdSWYlTqCAM4hUMoAxIuDU_EuX-SlTK6HfrZy8YepehjtANEgNjo-w-c3z_DjUNoLoRUB29VjixfJjMn3oednpQc8QBbfTgNj03eMfxX2sULJ0nJgL9ExUMvxvkCCH51NnMfiJ4VNCOrOLzvbK-IwMrls-65YYHKYzp6EgU9A", "recaptcha_response_field":""} Как видим, при первых 2 попытках "recaptcha_response_field" нам даже и не нужна. В ответ, в случае успеха, прилетают JSON данные с сессией, либо, в случае неудачи, JSON данные с ошибкой. И все было бы хорошо, НО, почему-то авторизация с кодом 200 проходит ТОЛЬКО ДЛЯ 1 ЕДИНСТВЕННОЙ УЧЕТНОЙ ЗАПИСИ! С любой другой (завел их 4 шт. на сайте) посылают куда подальше с ответом 400 и пояснением: httponly { "errors":["Что-то пошло не так"], "captcha":{"show_at_login":false} } Если удалить куки, то и для 1 рабочей учетной записи валится такая же ошибка. В браузере до лампочки, все 4 учетки логинятся на Ура. Из PHP скрипта - только 1 учетная запись поддается. Я бы понял, если бы ни одна уч. запись не проходила - означало бы, что скрипт не рабочий. А тут рабочий на 1/4 . Что сделано в скрипте: Цепляем токен формы. Получаем сессию. Получаем значение recaptcha_challenge_field в том числе и перезагрузив его в https://www.google.com/recaptcha/api/reload?c=полученное_значение &k=открытый_ключ_сайта&reason=i&type=image&lang=ru Формируем JSON Отправляем методом POST Знаю, что другие авторизацию реализовали посредством AJAX, запуская ее вручную. Для меня же предпочтительно посредством BackEnd.
P.S. Больше не актуально. Баг был в Content-Length заданном по дефолту в запросе и не изменяющемся. Убрал из заголовков вообще и Curl начал автоматически генерировать заголовок с правильным значением.