Python 重定向后检索cookies

Python 重定向后检索cookies,python,cookies,Python,Cookies,我有这个饼干(我在一个饼干经理身上看到) 基本上,问题是我无法检索已初始化的cookie。有什么原因吗?当直接使用“设置cookie”HTTP头设置cookie时,您还必须注意cookie属性(取决于您希望如何使用cookie) 在这种情况下,您可以在路径/app/auth中设置cookie,然后重定向到/app/login。如果未明确指定cookie路径,浏览器将采用/app/auth,因此在请求/app/login时不会发送cookie。该行为在中有详细说明(这比我在评论中引用的行为更新,但

我有这个饼干(我在一个饼干经理身上看到)


基本上,问题是我无法检索已初始化的cookie。有什么原因吗?

当直接使用“设置cookie”HTTP头设置cookie时,您还必须注意cookie属性(取决于您希望如何使用cookie)

在这种情况下,您可以在路径
/app/auth
中设置cookie,然后重定向到
/app/login
。如果未明确指定cookie路径,浏览器将采用
/app/auth
,因此在请求
/app/login
时不会发送cookie。该行为在中有详细说明(这比我在评论中引用的行为更新,但现在具体算法包含在第5.1.4节中)

要设置路径(或任何其他cookie属性),可以附加分号分隔的名称=值对列表。在这种情况下,您希望将路径设置为
/
(它可能与
/app
不同):

当然,大多数库/框架已经为“Set Cookie”头提供了包装器。在“webapp2”的情况下,您可以使用以下设置cookie:


它会自动将路径设置为
/
,因此您不必担心它(它也会正确地转义值)。

为什么不使用call?我猜:您的设置Cookie头没有设置“路径”,因此浏览器使用以设置Cookie头响应的路径(请参阅)。如果现在重定向到其他路径,浏览器将不会发送cookie,因为路径不匹配。如果将格式字符串更改为
“user\u id=%s”,则可能会起作用;Path=/”
(可能是空格的问题)@vstm您是对的。请加上答案。我会接受的。
class ...
self.response.headers.add_header('Set-Cookie','user_id = %s'% id_and_hash)
        self.redirect("/app/login")

class ThanksHandler(webapp2.RequestHandler):
    def get(self):
        if 'user_id' in self.request.cookies:
            self.response.out.write('user_id')
        else:
            self.response.out.write("wrong") // what i am getting
name: user_id
content: 30|a9bdc98e952c0e787aaf0e5466809eea71635d38446d30a9f71f2d15e99fa701
self.response.headers.add_header('Set-Cookie','user_id=%s; Path=/'% id_and_hash)
self.response.set_cookie('user_id', id_and_hash)