我正在用 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')。
我正在使用 POSTMAN 来调用我的端点。在这种情况下,我正在尝试 POST 方法localhost:9999
,每次尝试时,它都会转到 digest.on('fail') 事件。
在Authorization选项卡中,我使用此数据。
我究竟做错了什么?这是我第一次使用 Express,所以任何评论都会有所帮助。
编辑 1 - 8 月 14 日
postman 中的授权标头如下Digest username="jdurini", realm="prueba", nonce="", uri="/", response="2c01bce3e1980c575fc82e32f9943617", opaque=""
:当我填写授权表格时,此标头会自动生成:
- 类型:摘要认证
- 用户名:jdurini
- 境界:普鲁巴
- 密码:2315
请求中没有使用其他标头。