Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2013, 09:36   #1
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию Авторизация Яндекс (проблема с куками)

Доброго времени суток.
Есть авторизация на Яндексе(не знаю, правильно или нет, но работает)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var data:Tstringlist;
    strpage:string;
    i:integer;
begin


idHTTP1.CookieManager:=IdCookieManager1;
idHTTP1.HandleRedirects:=true;
IdHTTP1.AllowCookies:=true;
IdSSLIOHandlerSocketOpenSSL1.Port:=433;

IdHTTP1.Request.Host:='passport.yandex.ru';
idHttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
idHttp1.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
idhttp1.Request.Referer:='https://passport.yandex.ru/passport?mode=auth';
idhttp1.Request.ContentType:='application/x-www-form-urlencoded';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.ContentLength:=200;
idhttp1.Request.Date:=now;
idhttp1.Request.AcceptEncoding:='gzip,deflate';
IdHTTP1.Request.UserAgent:='Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1';


idHTTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
     data:=tstringlist.Create;
     data.Add('from=passport');
     data.Add('retpath=https://mail.yandex.ru/');
     Data.Add('twoweeks=yes');
     Data.Add('login='+Edit1.Text);
     Data.Add('passwd='+Edit2.Text);





strpage:=idHTTP1.Post('https://passport.yandex.ru/passport?mode=auth', data);
end;
Авторизация проходит нормально. Но, никак не могу разобраться с кукисами. Яндекс мне отвечает

Цитата:
POST /passport?trace=pass-m4.2267.rloginoid&mode=error&error= nocki HTTP/1.0
Код:
Произошла ошибка.<br />Чтобы авторизация на&nbsp;Яндексе проходила корректно, необходимо включить куки (Cookies) в
&nbsp;настройках вашего браузера. 
О&nbsp;том, как&nbsp;включить&nbsp;куки, можно прочитать в&nbsp;разделе помощи
Мне после авторизации надо будет потом просто зайти на страницу Маркета и пропарсить одно значение, но этого сделать не могу(

Подскажите пожалуйста, в чём моя ошибка?

Последний раз редактировалось _ZixeL_; 29.08.2013 в 09:58.
_ZixeL_ вне форума Ответить с цитированием
Старый 30.08.2013, 10:29   #2
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Неужели никто не знает такую элементарную вещь? Ведь есть знающие люди тут. Выручайте, очень надо.

Либо кто-то дайте рабочий код авторизации, пожалуйста
_ZixeL_ вне форума Ответить с цитированием
Старый 30.08.2013, 12:38   #3
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию Авторизация Яндекс (проблема с куками)

Доброго времени суток.
Есть авторизация на Яндексе(не знаю, правильно или нет, но работает)


Код:
procedure TForm1.Button1Click(Sender: TObject);
var data:Tstringlist;
    strpage:string;
    i:integer;
begin


idHTTP1.CookieManager:=IdCookieManager1;
idHTTP1.HandleRedirects:=true;
IdHTTP1.AllowCookies:=true;
IdSSLIOHandlerSocketOpenSSL1.Port:=433;

IdHTTP1.Request.Host:='passport.yandex.ru';
idHttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
idHttp1.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
idhttp1.Request.Referer:='https://passport.yandex.ru/passport?mode=auth';
idhttp1.Request.ContentType:='application/x-www-form-urlencoded';
idhttp1.Request.Connection:='keep-alive';
idhttp1.Request.ContentLength:=200;
idhttp1.Request.Date:=now;
idhttp1.Request.AcceptEncoding:='gzip,deflate';
IdHTTP1.Request.UserAgent:='Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1';


idHTTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
     data:=tstringlist.Create;
     data.Add('from=passport');
     data.Add('retpath=https://mail.yandex.ru/');
     Data.Add('twoweeks=yes');
     Data.Add('login='+Edit1.Text);
     Data.Add('passwd='+Edit2.Text);





strpage:=idHTTP1.Post('https://passport.yandex.ru/passport?mode=auth', data);
end;
Авторизация проходит нормально. Но, никак не могу разобраться с кукисами. Яндекс мне отвечает

Код:
POST /passport?trace=pass-m4.2267.rloginoid&mode=error&error= nocki HTTP/1.0
Мне после авторизации надо будет потом просто зайти на страницу Маркета и пропарсить одно значение, но этого сделать не могу(

Подскажите пожалуйста, в чём моя ошибка?
_ZixeL_ вне форума Ответить с цитированием
Старый 31.08.2013, 10:00   #4
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Ап. Ни ужели никто не знает в чём проблема? Или что, никого нету рабочей авторизации яндекса? Не поверю, или тут просто всем лень помочь, тогда зачем форум создавали?
_ZixeL_ вне форума Ответить с цитированием
Старый 07.09.2013, 02:58   #5
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

up////////
_ZixeL_ вне форума Ответить с цитированием
Старый 07.09.2013, 16:04   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
     data.Add('retpath=https://mail.yandex.ru/');
эта страница на которую ты попадаешь после авторизации?

если да, то замени ее на страницу Маркета
ZuBy вне форума Ответить с цитированием
Старый 07.09.2013, 18:36   #7
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Код:
     data.Add('retpath=https://mail.yandex.ru/');
эта страница на которую ты попадаешь после авторизации?

если да, то замени ее на страницу Маркета
Это без толку, я не знаю зачем влепил сюда это.
Дело в том, если отключить редирект, то выскакивает ошибка у idHTTP

Цитата:
HTTP/1.1 302 Found
А если включить редирект, то получается такая картина: СКРИН
_ZixeL_ вне форума Ответить с цитированием
Старый 11.09.2013, 00:35   #8
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

ап!111......
_ZixeL_ вне форума Ответить с цитированием
Старый 11.09.2013, 00:36   #9
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Апппппп.....
_ZixeL_ вне форума Ответить с цитированием
Старый 11.09.2013, 19:47   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

IdHTTP + IdSSLIOHandlerSocketOpenSSL + IdCookieManager:
Код:
IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
IdHTTP1.CookieManager := IdCookieManager1;
IdHTTP1.HandleRedirects := true;
IdHTTP1.get('https://passport.yandex.ru/passport?mode=auth&from=market&retpath=http%3A%2F%2Fmarket.yandex.ru&login=' + login.text + '&passwd=' + password.text + '&twoweeks=yes');
//запрос нужной страницы
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с куками Кирилл12345 Работа с сетью в Delphi 5 25.07.2013 00:16
проблема с капчей и куками Smagulov85 Работа с сетью в Delphi 7 03.01.2013 14:10
Проблема с редиректом и куками Zoomer123 Работа с сетью в Delphi 4 14.03.2012 21:26
Проблема с куками C# Lemo Помощь студентам 2 10.08.2011 00:12
Проблема с куками nitrofox PHP 4 19.07.2011 22:51