【发布时间】:2022-01-03 22:28:03
【问题描述】:
我正在尝试创建一个登录端点/api,并且我正在通过身份验证标头发送用户登录数据,这对安全性来说可以吗? 授权标头实际上包含一个对象,它被编码为 Base64,它包含用户数据,如散列密码(在此代码中尚未散列)、用户名和某种服务器密钥(如果它是正确的客户端进行授权发送一个 api 请求),只是想确保它是否安全..
const aFunction = (req, res) => {
require('crypto').randomBytes(48, function(err, buffer) {
const token = buffer.toString('hex');
const auth = JSON.parse(Buffer.from(req.headers.authorization, 'base64').toString('ascii'))
if(auth.serverkey == version["serverkey"]){
loginUser(auth.username,token).then(data =>{
if (data.rows.length < 1 || data.rows[0].password != auth.password) {
res.send({
status: "failed",
message: "Username/Password is wrong",
status_code: 400
})
}else{
res.send({
status: "success",
message: "successfully logged in",
status_code: 200, token: token
})
}
})
}else{
res.send({
status: "failed",
message: "Unauthorized Client",
status_code: 401
})
}
});
}
【问题讨论】:
标签: javascript node.js express security