1

私は、アプリケーションの 1 つをスレッドセーフに変換することに取り組んできました。ローカルの開発アプリ サーバーでテストすると、すべてが期待どおりに機能します。しかし、アプリケーションのデプロイ時に、Cookie が正しく書き込まれていないように見えますか?

ログ内に、スタック トレースのないエラーがあります。

2012-11-27 16:14:16.879 Set-Cookie: idd_SRP=Uyd7InRpbnlJZCI6ICJXNFdYQ1ZITSJ9JwpwMAou.Q6vNs9vGR-rmg0FkAa_P1PGBD94; expires=Wed, 28-Nov-2012 23:59:59 GMT; Path=/ 

問題のコードブロックは次のとおりです。

# area of the code the emits the cookie
cookie = Cookie.SimpleCookie()
if not domain:
    domain = self.__domain
self.__updateCookie(cookie, expires=expires, domain=domain)
self.__updateSessionCookie(cookie, domain=domain)
print cookie.output()

Cookie ヘルパー メソッド:

def __updateCookie(self, cookie, expires=None, domain=None):
    """
    Takes a Cookie.SessionCookie instance an updates it with all of the
    private persistent cookie data, expiry and domain.

    @param cookie: a Cookie.SimpleCookie instance
    @param expires: a datetime.datetime instance to use for expiry
    @param domain: a string to use for the cookie domain
    """

    cookieValue = AccountCookieManager.CookieHelper.toString(self.cookie)
    cookieName = str(AccountCookieManager.COOKIE_KEY % self.partner.pid)

    cookie[cookieName] = cookieValue
    cookie[cookieName]['path'] = '/'
    cookie[cookieName]['domain'] = domain

    if not expires:
        # set the expiry date to 1 day from now
        expires = datetime.date.today() + datetime.timedelta(days = 1)

    expiryDate = expires.strftime("%a, %d-%b-%Y 23:59:59 GMT")
    cookie[cookieName]['expires'] = expiryDate

def __updateSessionCookie(self, cookie, domain=None):
    """
    Takes a Cookie.SessionCookie instance an updates it with all of the 
    private session cookie data and domain.

    @param cookie: a Cookie.SimpleCookie instance
    @param expires: a datetime.datetime instance to use for expiry
    @param domain: a string to use for the cookie domain
    """

    cookieValue = AccountCookieManager.CookieHelper.toString(self.sessionCookie)
    cookieName = str(AccountCookieManager.SESSION_COOKIE_KEY % self.partner.pid)

    cookie[cookieName] = cookieValue
    cookie[cookieName]['path'] = '/'
    cookie[cookieName]['domain'] = domain

繰り返しますが、使用中のライブラリは次のとおりです。

  • パイソン 2.7
  • ジャンゴ1.2

私が試すことができることについて何か提案はありますか?

4

1 に答える 1

3

Cookieを作成するためのコードが表示されますが、実際にどこかで応答に添付していますか?

どこかにresponse.set_cookie()があるはずです。

于 2012-11-28T00:53:44.307 に答える