【问题标题】:Decode Django session cookie value解码 Django 会话 cookie 值
【发布时间】:2014-04-17 12:32:44
【问题描述】:

我正在通过JavaScript 设置会话cookie,如下所示:

$('.content li a').on('click', function(e) {
        $.cookie.json = true;
        var cookie_value = {postid: 1234, commentid: 8999};
        $.cookie('my_cookie_key', cookie_value, {path: '/'});
    });

当我尝试在 Python Django 中检索 cookie 值时,我得到一个这样的编码字符串: '"%7B%22postid%22%3A1234%2C%22commentid%22%3A8999%7D"'

使用request.COOKIES.get('my_cookie_key')

如何将其转换为 dict 对象,以便我可以轻松检索 cookie 中的所有值,例如 my_cookie_obj.postid?我已经尝试解码字符串,但我认为我做得不对。

【问题讨论】:

    标签: python django cookies


    【解决方案1】:

    该值只是百分比编码。只需使用适当的解码功能,您就可以取回您存储的内容。

    >>> import json
    >>> from urllib.parse import unquote
    >>> s = unquote("%7B%22postid%22%3A1234%2C%22commentid%22%3A8999%7D")
    >>> s
    '{"postid":1234,"commentid":8999}'
    >>> v = json.loads(s)
    >>> v['commentid']
    8999
    

    请注意,用户可以操纵所有 cookie 值,因此在解析/使用这些值时要小心,因为它们是不受信任的内容。

    【讨论】:

      猜你喜欢
      • 2016-11-30
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2019-08-19
      • 2011-07-13
      • 2017-12-02
      • 2011-04-02
      • 2016-03-14
      相关资源
      最近更新 更多