Javascript 使用expressjs的基本身份验证

Javascript 使用expressjs的基本身份验证,javascript,express,curl,localhost,Javascript,Express,Curl,Localhost,我正在尝试使用expressjs使用用户名和密码进行基本身份验证。我面临的问题是,我希望在app.use()函数中使用if语句,但它似乎不返回任何内容。找到下面的代码片段,我得到了输出 const express = require('express'); const app = express(); const basicAuth = require('express-basic-auth'); app.get('/protected', (req,res)=>{ app.use(ba

我正在尝试使用expressjs使用用户名和密码进行基本身份验证。我面临的问题是,我希望在app.use()函数中使用if语句,但它似乎不返回任何内容。找到下面的代码片段,我得到了输出

const express = require('express');
const app = express();
const basicAuth = require('express-basic-auth');

app.get('/protected', (req,res)=>{
app.use(basicAuth({authorizer: myAuthorizer}))

function myAuthorizer(username, password){
    const userMatches = basicAuth.safeCompare(username, 'admin')
    const passwordMatches = basicAuth.safeCompare(password, 'admin')

    if(userMatches == 'admin' && passwordMatches == 'admin'){
        res.send("Welcome, authenticated client");
    }else{
        res.send("401 Not authorized");
    }
}});
app.listen(8080, ()=> console.log('Web Server Running on port 8080!'));
当我转到localhost服务器时,服务器会给我一个空的回复。 找到下面的图片以及如何进行。 也许,你


如果用户没有正确的凭据,我将如何在if语句中包含其他条件。我该如何考虑你一定是为我工作。谢谢
const express = require('express');
const app = express();
const basicAuth = require('express-basic-auth');

function myAuthorizer(username, password) {
    const userMatches = basicAuth.safeCompare(username, 'admin')
    const passwordMatches = basicAuth.safeCompare(password, 'admin')

    return userMatches && passwordMatches
}

app.use(basicAuth({ authorizer: myAuthorizer }))

app.get('/protected', (req, res) => {
    
    res.send("Welcome, authenticated client");

});

app.listen(8080, () => console.log('Web Server Running on port 8080!'));