Err*_*ald 2 csrf node.js express
我见过类似的问题,但没有一个解决方案对我有用.我正在使用express 3,使用ejs进行模板化.令牌正在html中填充,如下所示:
<input type="hidden" name="_csrf" value="IS+SwCqr3j+vGW9QSqIk56ZC/">
Run Code Online (Sandbox Code Playgroud)
这是我的模板html对于输入字段的样子:
<input type="hidden" name="_csrf" value=<%= token %>/>
Run Code Online (Sandbox Code Playgroud)
但是当我提交表格时,我得到了
Error: Forbidden at Object.exports.error
Run Code Online (Sandbox Code Playgroud)
这是我的主应用程序配置功能的样子
app.configure(function () {
app.engine('.html', require('ejs').__express);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.static(__dirname + '/public'));
app.use(express.session({
store: new mongoStore({
url:'mongodb://localhost/test',
maxAge: 300000
}),
secret: '076ee61d63ba104r4e34872411e433b2',
cookie: {
path : '/',
httpOnly : true,
maxAge : 1000*60*60*24*30*12
}
}));
app.use(express.csrf());
app.use(function(req, res, next){
res.locals.token = req.session._csrf;
next();
});
app.use(app.router);
});
Run Code Online (Sandbox Code Playgroud)
会话工作正常,令牌正在填充,所以我不知道现在要做什么.
Err*_*ald 10
如果有人遇到这个,我忘了在令牌周围添加引号
<input type="hidden" name="_csrf" value="<%= token %>"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2441 次 |
| 最近记录: |