2012-01-28 25 views

回答

1

如果您只想为每个会话创建一个新的CSRF令牌,而不是每个请求或某个东西,那么您总是可以利用Connect的csrf中间件让您传入自己的令牌生成函数的事实。例如:

connect.csrf(function (req) { 
    if (!req.session['myCsrfToken']) { 
    req.session['myCsrfToken'] = ... // generate token somehow 
    } 

    return req.session['myCsrfToken']; 
}); 
+0

非常好,谢谢。您是否有机会获得关于通过节点生成安全令牌的文章的链接? – Lanbo 2012-01-29 14:07:41

+2

Connect使用'crypto'模块生成其令牌。你可以在https://github.com/senchalabs/connect/blob/master/lib/middleware/csrf.js看到实现(查找'exports.uid')。你可以用'require('connect')。utils.uid(24)'做同样的事情connect-csrf模块。 – 2012-01-29 16:12:19