![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Всем доброго времени суток. Хочу зайти насайт через свою програму. но как выяснилось для авторизации на сайте сайт генерирует token. Каждый раз он новый. Вопрос как мне сделать авторизацию. Есть идея что сначала он должен подгрузить код найти там token и только потом провести Авторизацию с подстоновкой token-а в нужное место. А вот как реализовать я не понимаю =\
Код post запроса на сайте выглядит так. PHP код:
Пробовал по примеру: Код:
function extract(const text, begin1, end1: string): string; var startpos, endpos: integer; begin result := ''; startpos := Pos(begin1, text); if startpos < 1 then exit; inc(startpos, length(begin1)); endpos := Pos(end1, text, startpos); if endpos < 1 then exit; result := Copy(text, startpos, endpos - startpos); end; procedure TForm1.Button1Click(Sender: TObject); var StrPage, Url, token: string; Log: TStringList; begin Url := 'http://joyreactor.cc/login'; StrPage := IdHTTP1.Get(Url); token := extract(StrPage, 'name="token" value="', '"'); Log := TStringList.Create; IdHTTP1.Response.RawHeaders.extract('Set-cookie', Log); IdHTTP1.Request.CustomHeaders.text := 'Cookie:joyreactor=' + extract(Log.text, 'joyreactor=', ';') + ';'; Log.Clear; Log.Add('signin[username]=' + Edit1.text); Log.Add('signin[password]=' + Edit2.text); Log.Add('signin[remember]=on'); Log.Add('signin[_csrf_token]=' + token); StrPage := IdHTTP1.Post(Url, Log); if Pos(ansitoutf8('Велком!'), StrPage) <> 0 then showmessage('Добро пожаловать') else showmessage('Ошибка'); Log.Free; Но при попытке авторизироваться, пишет ошибка HTTP/1.1 401 Unauthorized. Не пойму что нужно сделать. HTTP Analyzer выдал вот что: Код:
Request Headers Value (Request-Line) POST /login HTTP/1.1 Host joyreactor.cc User-Agent Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding gzip, deflate Referer http://joyreactor.cc/login Cookie __utma=181973772.126570559.13468411 75.1371153093.1373369970.11; __utmz=181923772.1371113093.10.7.ut mcsr=go.mail.ru|utmccn=(organic)|ut mcmd=organic|utmctr=joyreactor; joyreactor=ver2ba21bd226380863fe1e6 21c664a16cca:29b9a9f37d055896677692 45a9f9b87f6d339644; __utmb=181924772.9.10.1373369970; __utmc=181923772 Connection keep-alive Content-Type application/x-www-form-urlencoded Content-Length 138 И в разделе Post Data: Код:
Parameter Name Value signin[username] Vasya signin[_csrf_token] b04b6fb4f43c5b05a8f01ec4d40b452b signin[remember] on signin[password] Pupkin Заранее спасибо за помощь. |