目前,我遇到了一个困扰我一整天的问题。本质上,我试图通过 Roblox 身份验证 API 获取帐户的登录 session 。当我从服务器发布到他们的 API 时,它首先起作用,这样我就可以获得 X-CSRF-TOKEN
,下次我向同一 API 发布帖子时需要在 header 中设置它,这样我就可以获得用于验证帐户 session 的 .ROBLOSECURITY
。但是,当我第二次在 header 中使用 token 发布到他们的 API 时,我收到 400 错误,并且我不确定为什么会发生这种情况。
此外,对于任何想知道的人,它都会返回一个有效的 X-CSRF-TOKEN。
var request = require('request');
var loginOptions = {
url: 'https://auth.roblox.com/v2/login',
form: {
'ctype': 'Username',
'cvalue': 'AccountUsernameHere',
'password': 'AccountPassGoesHere'
},
headers: {
'Content-Type': 'application/json'
}
};
request.post(loginOptions, function(error, response, body) {
loginOptions.headers['X-CSRF-TOKEN'] = response.headers['x-csrf-token'];
request.post(loginOptions, function(error, response, body) {
if (response.statusCode == 200) {
console.log('Success: ' + body);
} else {
console.log(response.statusCode + ' : ' + response.statusMessage);
}
});
});
最佳答案
您需要在nodejs中安装cors:npm install cors,您可以尝试以下操作
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})
关于node.js - 第二次发布到 API 时出现 400(错误请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51490580/