我正在用Express JS开发一个API。我想使用http-auth图书馆,我一直在尝试使用摘要身份验证,但我没有能够使用它。这是我的代码:
var app = require('express')(),
routes = require('./routes'),
bodyParser = require('body-parser'),
auth = require('http-auth');
app.use(bodyParser.json()); // Soporta json encoded bodies
app.use(bodyParser.urlencoded({ // Soporta encoded bodies
extended: true
}));
var digest = auth.digest({
realm: 'prueba',
file: __dirname + "/usr.pass"
});
app.use(auth.connect(digest));
// Conectamos todas nuestras rutas
app.use('/', routes);
// Levantamos servidor
app.listen(9999, () => {
Console.log('running');
});我的usr.pass文件有一行:jdurini:prueba:88bfcf02e7f554f9e9ea350b699bc6a7 (密码是MD5表示por '2315')。
我用邮递员打电话给我的终点站。在本例中,我在localhost:9999上尝试POST方法,每次尝试,它都会转到digest.on('fail')事件。
在授权选项卡中,i 使用这些数据。
我做错了什么?这是我第一次使用Express,所以任何评论都可能有帮助。
编辑1-8月14日
邮递员中的授权头如下:Digest username="jdurini", realm="prueba", nonce="", uri="/", response="2c01bce3e1980c575fc82e32f9943617", opaque=""。当我填写授权书的表单时,将自动生成此标头:
请求中不使用其他标头。
发布于 2017-08-12 10:02:45
原因
看来您的身份验证文件有问题。
溶质
我只是用赫特文摘重新生成身份验证行
htdigest usr.pass prueba jdurini得到了这样的东西:
jdurini:prueba:546bb2109e9d875fb486bf90a55fdbd6新版本对我有用。
通知
我想您可能希望将Console.log('running')行更改为小写,因为您的版本没有为我编译。
https://stackoverflow.com/questions/45638284
复制相似问题