标签: http-auth

仅使用Express框架对某些URL使用HTTP基本身份验证

我有一个使用Express框架和http-auth模块设计的node.js应用程序,如下所示:

var auth = require('http-auth');
var express = require('express');
// ...
var mywebapp = express();
// ...
if (usebasicauth) {
  var basic = auth.basic({realm:"MyRealm", file:"/srv/config/passwd"});
  mywebapp.use(auth.connect(basic));
}

mywebapp.use('/js', express.static(__dirname + '/files/js'));
mywebapp.use('/css', express.static(__dirname + '/files/css'));
// ...
Run Code Online (Sandbox Code Playgroud)

但是,我不想保护/js/css目录下可用的资产.这是我尝试做的:

if (usebasicauth) {
  var basic = auth.basic({realm:"MyRealm", file:"/srv/config/passwd"});
  mywebapp.use(function(req, res, next) {
    if (/^\/(css|js)/.test(req.url)) {
      next();
    }
    else {
      auth.connect(basic);
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

试图访问的URL下/css,并/js达到预期效果; 但是,其他URL永远不会加载.

如何让其他网址按预期工作?

basic-authentication node.js express http-auth

7
推荐指数
2
解决办法
5395
查看次数