gpt4 book ai didi

javascript - Node.js——CSRF token 未定义

转载 作者:行者123 更新时间:2023-12-03 11:50:56 32 4
gpt4 key购买 nike

我一直在努力实现 CSRF token 生成,但我不知道我做错了什么。

服务器.js:

// set up ======================================================================
var express = require('express');
var port = process.env.PORT || 8080;
var mongoose = require('mongoose');
var fs = require('fs');
var csrf = require('csurf');
.
.
.

var app = express();
app.use(csrf());
app.use(function(req, res, next) {
res.locals.token = req.csrfToken();
next();
});
.
.
.

登录.ejs:

<form action="/login" method="post">
<!--form fields-->
</form>
.
.
.
<input type="hidden" name="_csrf" value="<%= token %>">

当我尝试打开登录页面时,我在 node.js 控制台中看到以下内容:

token is not defined
.
.
.
GET /login 500 93ms - 1.64kb
\

编辑:server.js 现在看起来像这样:

var express  = require('express');
var port = process.env.PORT || 8080;
var mongoose = require('mongoose');
var fs = require('fs');
var csrf = require('csurf');
.
.
.
var app = express();
require('./config/express')(app, __dirname);
require('./config/routes')(app);
app.use(csrf());
app.use(function(req, res, next) {
res.locals.token = req.csrfToken();
next();
});

登录页面现已加载,但 CSRF token 未定义。

最佳答案

您在表单中的值是错误的。

不应该只是这样

value="<%= token %>"

但是相反

value="<%= csrfToken %>"

关于javascript - Node.js——CSRF token 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839924/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com