gpt4 book ai didi

javascript - 有什么方法可以在 express 的 POST 请求中获取 csrf token ?

转载 作者:行者123 更新时间:2023-11-30 20:57:29 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个来自 official docs 的代码,除了一个区别:我发送 xsrfToken 以响应 POST 请求,而不是 GET。

var cookieParser = require('cookie-parser')
var csrf = require('csurf')
var bodyParser = require('body-parser')
var express = require('express')

// setup route middlewares
var csrfProtection = csrf({ cookie: true })
var parseForm = bodyParser.urlencoded({ extended: false })

var app = express()

// we need this because "cookie" is true in csrfProtection
app.use(cookieParser())

app.post('/getCsrfToken', /*csrfProtection,*/ function (req, res) {
// check credentials from request.body
// and then

res.render('send', { csrfToken: req.csrfToken() }) //EXCEPTION: csrfToken is not a function
})

app.post('/process', parseForm, csrfProtection, function (req, res) {
res.send('data is being processed')
})

我面临蛋鸡问题:如果我启用 csrfProtection,我无法在没有 token 的情况下进入端点的代码,但如果我禁用它,req.csrfToken 将变为未定义。

我需要 gerCsrfToken 端点为 POST,因为我不想将密码公开为 url 参数。

最佳答案

问题已由 csurf 维护者回答,感谢您的快速回复!

https://github.com/expressjs/csurf/issues/133

(棘手的)解决方案是忽略此特定端点的 POST 方法

app.post('/authenticate', csrf({ cookie: true, ignoreMethods: ['POST'] }), function (req, res) {

关于javascript - 有什么方法可以在 express 的 POST 请求中获取 csrf token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47502121/

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