我们从哪里从node.js中的req.headers获取auth-token和user-id

时间:2019-05-09 06:13:58

标签: node.js

我想了解以下代码段的功能:

我对以下几行代码有疑问:

1)if(req.headers['auth-token']&&req.headers['user-id']&&req.headers['org-id']){

我了解代码说明,如果'auth-token''user-id''org-id'匹配,则程序将执行以下代码行。问题是程序将从哪里获得“ auth-token”,“ user-id”和“ org-id”?它们是特定于特定用户的,应为其分配一些值。程序将如何获取这些值?

还请提及req.header函数的功能。

2)var query={ip:req.ip,token:req.headers['auth-token'],date:new Date().toISOString(),user_id:req.headers['user-id'],org_id:req.headers['org-id']};

在本节中,为ip分配了req.ip的值(是否获取用户的IP地址?),给token分配了req.headers['auth-token']的值。

已为

Date分配了Date()的值(这是当前日期吗?),该值已转换为字符串。

user_id:org_id:都做了同样的事情(我正确吗?)

3)db.one("SELECT * FROM public.password_token WHERE ip=${ip} AND user_id=${user_id} AND auth_token=${token} AND org_id=${org_id} AND ${date} BETWEEN fromdate AND todate;",query)

在此代码行中,我无法理解以下部分:${date} BETWEEN fromdate AND todatefromdatetodate在哪里被声明/定义/分配一个值?是关键字还是用户定义的?

router.use(function (req, res, next) {
    if(req.headers['auth-token']&&req.headers['user-id']&&req.headers['org-id']){
        var query={ip:req.ip,token:req.headers['auth-token'],date:new Date().toISOString(),user_id:req.headers['user-id'],org_id:req.headers['org-id']};
        db.one("SELECT * FROM public.password_token WHERE ip=${ip} AND user_id=${user_id} AND auth_token=${token} AND org_id=${org_id} AND ${date} BETWEEN fromdate AND todate;",query)
        .then(result=>{
            next();
        })
        .catch(error=>{
            console.log(error);
            res.status(401).send("Authentication failure!");
        });
    }
    else{
        res.status(401).send("Authentication token, User ID or Organization ID header is not found!");
    };
});

0 个答案:

没有答案