def create_cookie():
bag = string.ascii_uppercase + string.ascii_lowercase + string.digits
cookie = Cookie.SimpleCookie()
cookie['sessionid'] = ''.join(random.sample(bag,24))
cookie['sessionid']['expires'] = 600
return 'Set-Cookie: ', cookie.output().replace('Set-Cookie: ', '', 1)
cookie.outputは、()のSet-Cookieれる:セッションID = YmsrvCMFapXk6wAt4EVKz2uU。 「( 'OK 200'、[( 'コンテンツタイプ'、 'text/htmlの')、(=日、14 - 8月 - 2011年21時48分19秒GMT
headers.append(('Content-type', 'text/html'))
headers.append(('Content-Length', str(output_len)))
headers.append(create_cookie)
は、これは私の応答 で期限切れになります( 'Set-Cookie'、 'sessionid = YmsrvCMFapXk6wAt4EVKz2uU;期限= 2011年8月14日21:48:19 GMT')]、 'html stuff')
HTTP_COOKIE:これは私がenvirionから得るものであるセッションID = YmsrvCMFapXk6wAt4EVKz2uU
そして、私は自分のページ上の別のリンク、クロムDEVコンソールを使用していない多くのHTTP_COOKIE をクリックしたときに、私は、要求のクッキーaを見ることができますページヘッダーには次の情報が含まれています。 Cookie :: sessionid = YmsrvCMFapXk6wAt4EVKz2uU
これで少し気になります。まず第一に、なぜそれがダブル::を持っていますか?私はcreate_cookie関数で 'Set-Cookie:'の代わりに 'Set-Cookie'を使ってみました。私はenvironからHTTP_COOKIEをまったく取得しませんでした。
だからウェブで検索し、誰もがちょうどミドルウェアの話をたくさんした後に(してください私は1つ使用することをお勧めしません - 私はWSGIを学ぶためにこれをやっている)...私は空作ってみました。私は、次の要求が決定的に実際に私が見つけることができるのクッキーを送信するブラウザ側の問題をそれを作るHTTP_COOKIEが含まれていなかったことに気づいたいくつかの集中的なデバッグ後
何もまだ
"イェーイ" 基本的に私が送信している:。?( 'のSet-Cookie'、「セッションID = YmsrvCMFapXk6wAt4EVKz2uU; =日、14 - 8月に期限が切れます-2011 21:48:19 GMT ') ただし、このヘッダーを取得する: HTTP_COOKIE :: sessionid = hM2YOE5dSsVpa3QIRCLNjfwX 余分な ':'? – Bjorn
ああ、私は 'max-age'に 'expires'を変更しました10 * 60 * 1000:S - まだ運がありません。 – Bjorn
OK、これを行う正しい方法は、単に 'Set-Cookie'を使うことです。 HTTP_COOKIE:session = FZ25UL60bQP7yu93cEawtqro – Bjorn