【问题标题】:How to read flask sessions using javascript?如何使用 javascript 读取烧瓶会话?
【发布时间】:2013-04-25 03:17:26
【问题描述】:

我有一个安全的烧瓶会话

session = "xC4tHoSZQVSHpVtnHUONYb/obAA=?USER_TOKEN=UycuZUp3Rndja1JnREFJQU1CZThwWVpqbkRWNHZpQW9QMlg0TzY5ZXN4MU5rTlZOaEM5RERuczBCRkRqSHFDY0YxTGZMSUM3WlNHdkxhZEpJUjZXcjh4ekZyUEQ5aUxFMEEuVGt0V3RqdTFKblVBVzV2SnRpSjd3M0NJZFdRJwpwMQou"

我正在使用 angular.js cookie 来检索值,但它什么也没给我。

console.log('token - ' + $cookieStore.get('USER_TOKEN'));

如何使用 Javascript 访问 USER_TOKEN 的值?

【问题讨论】:

    标签: javascript session angularjs flask


    【解决方案1】:

    对此我可能完全矛盾,但我一直认为您无法使用 Javascript 访问会话数据,因为 Werkzeug 安全 cookie 模块使用了一些内部结构。我计划尝试这个 sn-p 作为解决方法:

    http://flask.pocoo.org/snippets/51/

    但在我有机会尝试之前,我不知道它是否可以完成 Flask 的基本会话模块所缺乏的一些事情。

    【讨论】:

    • 我的 cookie 是安全的并由 itsdangerous 签名,但我不知道如何在浏览器上获取数据以供读取
    • 你能发布你的控制器来显示你正在注入的所有东西吗?另外,它是否可以通过 $cookies 而不是 $cookieStore 获得?
    【解决方案2】:

    自从提出问题以来,Flask 默认切换到其危险的客户端会话。

    由于这仍然是这个问题的最高谷歌结果,而且我自己也遇到了一些问题,现在这里是如何做到的:

    function parse_session(){
        var cookie = Cookies('session');
        if(! cookie) return;
        // Is the content ziped ?
        var un_64 = "";
        if(cookie[0] == "."){
            var data = cookie.split('.')[1].replace(/_/g, '/').replace(/-/g, '+');
            un_b64 = atob(data);
            un_b64 = pako.inflate(un_b64, {to: 'string'});
        }else{
            var data = cookie.split('.')[0].replace(/_/g, '/').replace(/-/g, '+');
            un_b64 = atob(data);
        }
        return jQuery.parseJSON(un_b64);
    }
    

    这个 sn-p 使用 jquery、cookie.js 和 paco(解压缩)。 Flask 'SESSION_COOKIE_HTTPONLY' 配置变量需要设置为 False 才能在客户端读取会话。

    【讨论】:

      【解决方案3】:

      好的。用于访问烧瓶设置的 cookie 会话。我们不能使用 document.cookies 直接在 js 中访问,因为它是 HttpOnly。但是,您可以使用模板引擎语法访问它。

      let session = {{session|tojson}};
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2021-10-09
        • 2018-08-18
        • 1970-01-01
        • 2015-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多