我有一个SailsJS应用程序,我需要在其中引用位于项目根目录的htpasswd文件:
undefined
我尝试过使用:
var auth = require('http-auth');
var basic = auth.basic({
authRealm: "Admin Panel",
authFile: 'htpasswd', // <-- how do I specify the path to this file ?
authType: 'basic'
});
module.exports = function(req, res, next) {
basic.apply(req, res, function(username) {
if(!username) {
return res.serverError(403, 'You are not authorized');
}
next();
})(req, res);
}
以及:
authFile: '/htpasswd'
都没有效果。
Hurmm ....似乎不是代码有错误,不知怎的,我的Sailsjs应用程序无法找到htpasswd模块。
我做了:
authFile: '~/htpasswd'
我还使用htpasswd命令行生成sudo npm install -g htpasswd
文件...我的项目设置错误...
我的控制台错误说:
htpasswd
答案 0 :(得分:2)
使用本地__dirname
变量来计算当前文件的路径。
查看使用console.log(__dirname)
的内容。然后你可以这样做:
var basic = auth.basic({
realm: "Admin Panel",
file: __dirname + "/path_from_current_file_to/htpasswd"
});
因此,如果root是该脚本所在的文件夹中的文件夹,则可以执行
__dirname + "/../htpasswd"