2012-01-28 23 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