在 ruby 中,人们可以做一些事情,比如<%= form_tag(:action => '/submit') do %> ... <% end %>
获取包含 CSRF 令牌的表单。
节点中是否存在现有功能,它是如何实现的?
在 ruby 中,人们可以做一些事情,比如<%= form_tag(:action => '/submit') do %> ... <% end %>
获取包含 CSRF 令牌的表单。
节点中是否存在现有功能,它是如何实现的?
您可以为 node.js使用caolan-forms 插件。之后安装express-csrf 插件。
然后你可以合并这两个,比如:
// initializing express
var express = require('express'),
// initializing express-csrf
csrf = require('express-csrf');
app = express.createServer();
app.dynamicHelpers({
csrf: csrf.token
});
var forms = require('forms'),
fields = forms.fields,
validators = forms.validators;
var reg_form = forms.create({
username: fields.string({required: true, id: csrf, name: csrf}),
});
// finally render the form
reg_form.toHTML();
它会产生:
<div class="field required">
<label for="id_username">Username</label>
<input type="text" name="[csrf-value]" id="[csrf-value]" value="test" />
</div>
注: caolan-forms 的作者写道:
您会注意到您必须提供自己的表单标签和提交按钮,这种方式更灵活;)
由于 express-csrf 已被贬低,因此请改用connect bundle并遵循这个简单的示例。最终,您将能够将其与caolan-forms集成,例如:
var reg_form = forms.create({
'_csrf':fields.hidden({value: 'req.session._csrf'}),
...
})