使用express js的http-auth摘要
我正在开发一个Express JS的API。 我想使用http-auth库 ,我一直在尝试使用摘要式身份validation,但是我一直无法使用它。 这是我的代码:
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来呼叫我的terminal。 在这种情况下,我正在尝试POST方法localhost:9999
,每次我尝试,它会去digest.on('失败')事件。
在授权选项卡中,我使用这些数据 。
我究竟做错了什么? 这是我第一次使用Express,所以任何评论可能会有所帮助。
编辑1 – 8月14日
Digest username="jdurini", realm="prueba", nonce="", uri="/", response="2c01bce3e1980c575fc82e32f9943617", opaque=""
授权标题如下: Digest username="jdurini", realm="prueba", nonce="", uri="/", response="2c01bce3e1980c575fc82e32f9943617", opaque=""
。 当我使用以下方式填写授权表单时,此标题是自动生成的:
- 键入 :摘要validation
- 用户名 :jdurini
- 领域 :prueba
- 密码 :2315
请求中没有使用其他头文件。
原因
看起来你的validation文件有问题。
Soluton
我只是用htdigest重新生成authentication行:
htdigest usr.pass prueba jdurini
并得到这样的东西:
jdurini:prueba:546bb2109e9d875fb486bf90a55fdbd6
新版本适合我。
注意
我想你可能想把Console.log('running')
一行改成小写,因为你的版本不能为我编译。
- 如何从node.js URLparameter passingmongodb匹配条件
- 允许NodeJS和Express处理Cache-Control头
- 我如何处理expressjs应用程序中的意外错误以避免停机?
- React-router服务器端错误
- 如何在nodeJS中使同步functionasynchronous
- 在我的应用程序启动时创build所有路线是不是一个好主意?
- Mongoose API文档中的#是什么?
- nodejs http-proxy不转发put请求
- 带有Post方法和enctype Multipart / form-data的表单没有在Nodejs Express multer模块上提交