gpt4 book ai didi

node.js - 表达关于服务器逻辑的中间件

转载 作者:搜寻专家 更新时间:2023-10-31 23:57:39 24 4
gpt4 key购买 nike

我正在学习如何构建带有身份验证的服务器。我正在关注这个 tutorial ,最终代码可见here .其中使用 ExpressJWT 构建一个简单的登录服务器。以下代码:

app.use((req, res, next)=>{
// check header or url parameters or post parameters for token
console.log(req.body);
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if(token){
console.log("token");
jwt.verify(token,"samplesecret",(err,decod)=>{
if(err){
res.status(403).json({
message:"Wrong Token"
});
}
else{
console.log("success");
req.decoded=decod;
next();
}
});
}
else{
res.status(403).json({
message:"No Token"
});
}
});

正在添加一个中间件,但我不确定这样做的目的是什么以及它是如何工作的。这是在每条路线上都被调用吗?在这种情况下,req.body 是什么? res.status().json() 做了什么?


我也不明白 HTML 文件下的脚本 authgetlist 做了什么(太长无法包含)。什么时候调用这些脚本?他们是否在用户的计算机上存储了 cookie?正在验证什么?


问题太多,我深表歉意。我对网络开发还很陌生,只是想弄清楚基础知识。非常感谢。

最佳答案

这在每条路线上被调用以检查 token 是否存在、解码和检查它。

如果存在并解码,(其中显示 console.log('success');)它将从 jwt 解码的数据附加到请求 req因此,在您处理请求的任何 Controller 中,您都可以获得数据(存储在 req.decoded 上)


至于 res.status().json()(res 当然是指响应)...正在链接 2 个函数,它们是 res 的函数。

  • 状态(整数)
  • json(obj)

req.status 设置响应状态代码(例如 200 OK、404 Not found、503 Server error)。req.json 发送响应,正文是您传入的 json。

因此下面的代码会将消息 {error:'We failed'} 发送回客户端,HTTP 状态代码为 503:

req.status(503).json({ error: 'We failed' });

您可以在 Express 文档 here 上阅读更多关于像这样的响应方法/属性(以及其他类似 sendredirect 等)的信息.

关于node.js - 表达关于服务器逻辑的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49419946/

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