2016-05-11 55 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的回覆不是網址,它是requests.models.Response類型的對象。

bottle.redirect需要一個url(字符串),而不是一個requests.models.Response對象。

如果你的應用是很簡單的,也許你可以逃脫硬編碼您登錄後頁面:

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

否則,您應該諮詢登錄服務的API文檔,看看如何提取網址從他們的迴應。例如,也許他們返回json,你需要解碼,它包含一個「url」字段。

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