【发布时间】:2017-08-11 15:01:52
【问题描述】:
我正在用 Express JS 开发一个 API。我想使用http-auth library,并且一直在尝试使用摘要式身份验证,但一直无法使用。这是我的代码:
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 表示,“2315”)。
我正在使用 POSTMAN 来调用我的端点。在这种情况下,我在 localhost:9999 上尝试 POST 方法,每次尝试时,它都会触发 digest.on('fail') 事件。
在授权标签中,我use this data。
我做错了什么?这是我第一次使用 Express,所以任何评论都会有所帮助。
编辑 1 - 8 月 14 日
邮递员中的授权标头如下:Digest username="jdurini", realm="prueba", nonce="", uri="/", response="2c01bce3e1980c575fc82e32f9943617", opaque=""。当我填写授权表格时,此标头会自动生成:
- 类型:摘要验证
- 用户名:jdurini
- 领域:prueba
- 密码:2315
请求中没有使用其他标头。
【问题讨论】: