Найти - Пользователи
Полная версия: Авторизация на сайте, не срабатывает редирект.
Начало » Python для новичков » Авторизация на сайте, не срабатывает редирект.
1
yar1k
Добрый день. Пытаюсь авторизоваться в личном кабинете билайн:

 import lxml.html
import requests
 
login = '90XXXXXXXX'
password = 'password'
url = 'https://stavropol.beeline.ru/login/'
lk = 'https://stavropolskiy-kr.beeline.ru/customers/products/mobile/profile/'
 
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1',
    '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',
    'Connection':'keep-alive',
    'DNT':'1'
}
session = requests.session()
data = session.get(url, headers=headers).content
 
page = lxml.html.fromstring(data)
form = page.forms[3]
form.fields['login'] = login
form.fields['password'] = password
response = session.post(form.action, data=form.form_values())
print(response.url)
final = session.get(response.url, allow_redirects=True)
print(final.url)

принт выводит URL с уникальным ключом и прочей доп. информацией, такую же картину вижу и при авторизации в браузере:
 https://identity.beeline.ru/identity/connect/authorize?scope=openid%20selfservice_identity%20usss_token%20profile&response_type=id_token&client_id=quantumartapp&state=c5206c79522e49048e9f7d20066bb2f8&nonce=fcba28d8071946ac8c831f904aa96b0e&response_mode=form_post&acr_values=fpcc-password%3AEAAAAEIbfGza8MKSPcdFKhjFF9xDe0fdR2fIHCE6LNFb2R45%20fpcc-remember_me%3AFalse%20one_time_password%3AFalse&login_hint=90XXXXXXXX&redirect_uri=https%3A%2F%2Fwww.beeline.ru%2Flogincallback

Но при работе в браузере(chome, ff) после данного URL идет редирект на указанную в конце страницу: https://www.beeline.ru/logincallback, а после нее уже непосредственно в личный кабинет:
https://stavropolskiy-kr.beeline.ru/customers/products/mobile/profile/

Вопрос в том, почему при get запросе мне в final.url выдает всё тот же response.url?



py.user.next
Надо в браузере посмотреть, какой обмен происходит. Часто через referer такая информация передаётся (что ты заходил туда-то). Поэтому поставь сниффер заголовков на браузер (расширение) и посмотри, какие заголовки пересылаются.
yar1k
py.user.next
Я пробовал сниферить wireshark`ом, но трафик зашифрованный. Пробовал запускать dev-консоль в браузере, там черт ногу сломит. API у билайн к личному кабинету нет
Попробую расширения, спасибо.
py.user.next
yar1k
Я пробовал сниферить wireshark`ом, но трафик зашифрованный.
Да, сейчас он бесполезен практически стал. Там можно расшифровать трафик, но это не один день разбираться. А расширений браузера вполне хватает. Надо отловить только основные моменты. Вот у тебя заголовки написаны, их можно не писать так, проверяется обычно только user-agent и referer.
delvin-fil
Проделываем то-же самое с my.tele2.ru и получаем на выходе вот такую ссылку:
https://login.tele2.ru/ssotele2/wap/profile?baseUrl=https://login.tele2.ru:443/ssotele2
И если перейти по ней в браузере, то получим занятную формочку:

Где нижняя ссылка выглядит вот так https://login.tele2.ru/ssotele2/wap/auth?serviceId=341&returnUrl=https://my.tele2.ru/, но ведет в: https://my.tele2.ru/?key=оченьмногоРАЗНЫХбуквоцифр
Вот и возникает вопрос: Как вытянуть сей KEY?
yar1k
delvin-fil
Проделываем то-же самое с my.tele2.ru и получаем на выходе вот такую ссылку:https://login.tele2.ru/ssotele2/wap/profile?baseUrl=https://login.tele2.ru:443/ssotele2И если перейти по ней в браузере, то получим занятную формочку: Где нижняя ссылка выглядит вот так https://login.tele2.ru/ssotele2/wap/auth?serviceId=341&returnUrl=https://my.tele2.ru/, но ведет в: https://my.tele2.ru/?key=оченьмногоРАЗНЫХбуквоцифрВот и возникает вопрос: Как вытянуть сей KEY?
Распарсить (response.txt)
delvin-fil
yar1k
response.txt
Что-то я не нашел его
Адрес не подскажете?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB