2016-05-11 8 views
0

Я ищу совет о том, как перенаправить на страницу, требующую сеансовых файлов cookie в бутылке. Я хочу, чтобы пользователи, с учетом правильного имени пользователя и пароля для данной службы, автоматически перенаправлялись на эту внешнюю службу, входящую в систему.Перенаправление на страницу, требующую сеансовых файлов cookie в бутылке

У меня есть функция, которая может подключаться к серверу, получить URL-адрес перенаправления и cookie сеанса для авторизации.

with requests.session() as s: 
    r = s.post("https://someservice.com/Account/LogOn", 
       data=payload) 

    redirect_object = {'url':r, 'session':s} 
    return redirect_object 

При попытке перенаправить с помощью

bottle.redirect(redirect_object['url']) 

Я четко присылают на страницу входа в систему вместо на главную страницу как зарегистрированный пользователь, как у меня нет информации о сеансе в моем браузере.

Как передать эту информацию сессии при перенаправлении на домашнюю страницу? Это возможно?

ответ

0

Ответ от post не является URL-адресом, это объект типа requests.models.Response.

bottle.redirect принимает URL-адрес (строка), а не объект requests.models.Response.

Если ваше приложение достаточно просто, может быть, вы можете просто уйти с жестким кодированием вашей страницы после входа в системе:

bottle.redirect('http://example.com/home') 

В противном случае, вы должны обратиться к API Docs функции регистрации, чтобы узнать, как извлечь URL от их ответа. Например, возможно, они возвращают json, который вам нужно будет декодировать, который содержит поле «url».

resp = s.post(...) 
resp_dict = json.loads(resp.content) 
bottle.redirect(resp_dict['post_auth_url'])