4

我有一个安全的烧瓶会话

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

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

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

如何访问USER_TOKEN使用 Javascript 的价值?

4

3 回答 3

1

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

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

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

于 2013-05-01T05:29:39.723 回答
0

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

let session = {{session|tojson}};
于 2021-08-30T16:46:44.780 回答
0

由于提出了这个问题,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);
}

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

于 2018-03-28T15:35:26.637 回答