2013-01-01 35 views
4

存在很多與此類似的問題,但是他們都沒有幫助我。基本上我使用WSGI start_response()方法link。我嘗試設置與元組[(「設置Cookie」,「令牌= THE_TOKEN」)]的響應僞報頭,並把它添加到啓動響應這樣的:設置一個cookie並用Python和WSGI檢索它

status = '200 OK' 
response = 'Success' 
start_response(status,[('Set-Cookie', "DMR_TOKEN=DMR_TOKEN")]) 
return response 

我不是很確定這是正常工作,但它在這裏setting cookies。現在,讓我們假設頭部是正確的,並且在接下來的請求中,我想驗證令牌。捕獲過去設置的cookie/header的正確方法是什麼?

我一直在讀,找到我需要的是這樣的:

(environ.get("HTTP_COOKIE","")) 

,但已產生空字符串所有的時間,所以我只是假設頭/ cookie的設置不正確。

謝謝你們

+1

提示:你的WSGI應用程序應該像返回'return [「Success」]'not'return「Success」'。 – SingleNegationElimination

回答

6

我認爲你需要明確設置的路徑來獲得有用的行爲出來的餅乾,你可以試試:...

from Cookie import SimpleCookie 

def my_app(environ, start_response): 
    session_cookie = SimpleCookie() 
    session_cookie['session'] = "somedata" 
    session_cookie['session']["Path"] = '/' 

    headers = [] 
    headers.extend(("set-cookie", morsel.OutputString()) 
        for morsel 
        in session_cookie.values()) 

    start_response("200 OK", headers) 
+0

真棒,這爲我工作,謝謝! –

相關問題