我正在寻找有关如何重定向到需要会话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 :(得分:0)
来自requests.models.Response
的回复不是网址,而是bottle.redirect
类型的对象。
requests.models.Response
采用网址(字符串),而不是bottle.redirect('http://example.com/home')
对象。
如果您的应用程序足够简单,也许您可以通过对登录后页面进行硬编码来实现:
resp = s.post(...)
resp_dict = json.loads(resp.content)
bottle.redirect(resp_dict['post_auth_url'])
否则,您应该查阅登录服务的API文档,了解如何从响应中提取URL。例如,也许他们返回你需要解码的json,它包含一个“url”字段。
selections