python - 重定向后检索cookie

标签 python cookies

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

我有这个 cookie(我在 cookie 管理器中看到)

name: user_id
content: 30|a9bdc98e952c0e787aaf0e5466809eea71635d38446d30a9f71f2d15e99fa701

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

最佳答案

当直接使用“Set-Cookie”HTTP header 设置 cookie 时,您还必须注意 cookie 属性(取决于您想要如何使用 cookie)。

在这种情况下,您可以在路径 /app/auth 中设置 cookie,然后重定向到 /app/login。如果您没有显式指定 cookie 路径,浏览器会假定 /app/auth,因此在请求 /app/login 时不会发送 cookie。此行为在 RFC 6265 中指定(这比我在评论中引用的算法更新,但现在确切的算法包含在第 5.1.4 节中)。

要设置路径(或任何其他 cookie 属性),您可以附加以分号分隔的名称=值对的列表。在本例中,您希望将路径设置为 / (可能是不同的内容,例如 /app):

self.response.headers.add_header('Set-Cookie','user_id=%s; Path=/'% id_and_hash)

当然,大多数库/框架已经为“Set-Cookie” header 提供了包装器。对于“webapp2”,您可以使用 response.set_cookie 设置 cookie :

self.response.set_cookie('user_id', id_and_hash)

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

关于python - 重定向后检索cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10574391/

相关文章:

python - 手动签名 cookie 上的 Django get_signed_cookie

python - 通过python API获取Windows Azure存储表名称

javascript - 可以使用 javascript 将 cookie 设置到另一个域吗?

python - 正则表达式模块 Python 中的 Posix 类

python - 可以用python写一个IM服务器吗? (能够处理繁重的连接)

javascript - 通过 JS 设置的 Cookie 在浏览器关闭时过期未过期

Asp.net 表单例份验证 cookie 不支持 IIS7 超时

javascript - 当用户访问 3 个或更多页面时触发函数

python - 使用 scikit learn 训练机器学习模型以进行时间序列预测

用于并发的 python 生成器