javascript - 使用node js检查api中的用户名和密码有多少种方法?

标签 javascript node.js

我有一个测试 API。在此 api 中,我在解析后从“curl -u username:password”获取用户名和密码。但我不想在每个 api 中解析用户名和密码。我们可以通过任何方式做到这一点吗? 示例:

    app.get('/test',function(req,res){
        var header=req.headers['authorization']||'',        
        token=header.split(/\s+/).pop()||'',            // and the encoded auth token
        auth=new Buffer.from(token, 'base64').toString(),    // convert from base64
        parts=auth.split(/:/),                          // split on colon
        username=parts[0],
        password=parts[1];
"'+password+'"')
        if(username=="username" && password=="password"){
            res.status(200).json({
                "data":"/v1/test"
            });
        }else
        res.status(422).json({
            "error":"Invalid Username Password"
        });

    });*

最佳答案

您可以尝试快速中间件。

const checkUsernameAndPassword = (req, res, next) => {
    var header=req.headers['authorization']||'',        
        token=header.split(/\s+/).pop()||'',            // and the encoded auth token
        auth=new Buffer.from(token, 'base64').toString(),    // convert from base64
        parts=auth.split(/:/),                          // split on colon
        username=parts[0],
        password=parts[1];
"'+password+'"')
        if(username=="username" && password=="password"){
            return next();
        } else {
            return res.status(422).json({
                "error":"Invalid Username Password"
            });
        }
};

app.get('/test', checkUsernameAndPassword, function(req,res){
    return res.status(200).json({ "data":"/v1/test" });
});

关于javascript - 使用node js检查api中的用户名和密码有多少种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53941567/

相关文章:

node.js - EJS 在某些情况下只输出第一个找到的用户

node.js - Node 包 'node-fetch' 语法错误 : Unexpected identifier

node.js - models.Page.findOne(...).sort 不是 Sequelize Express Node 中的函数

javascript - 反射(reflect)开发服务器中的更改,无需重新加载 Node 服务器(Webpack 和 Vue-cli)

macos - 刷新node.js脚本!

javascript - 如何自动调整选项卡的高度以适合内容

javascript - 使用 Ajax 传递参数(使用延迟和 promise )需要帮助

javascript - Meteor.status() 不是响应式(Reactive)数据源?

javascript - 在 HTML 中访问 javascript 数组

javascript - 网格内的 Ext JS 组合框