gpt4 book ai didi

node.js - 使用 Express js 进行 http-auth 摘要

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:57 24 4
gpt4 key购买 nike

我正在 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(密码是“2315”的 MD5 表示形式)。

我正在使用 POSTMAN 来调用我的端点。在本例中,我在 localhost:9999 上尝试 POST 方法,每次尝试时,它都会转到digest.on('fail') 事件。

授权选项卡中,我use this data .

我做错了什么?这是我第一次使用 Express,所以任何评论都会有帮助。

编辑 1 - 8 月 14 日

postman中的授权 header 如下:Digest username="jdurini",realm="prueba",nonce="",uri="/",response="2c01bce3e1980c575fc82e32f9943617",opaque="" .当我填写授权表单时,会自动生成此 header :

  • 类型:摘要式身份验证
  • 用户名:jdurini
  • 境界:普鲁巴
  • 密码:2315

请求中没有使用其他 header 。

最佳答案

原因

您的身份验证文件似乎有问题。

解决方案

我刚刚使用 htdigest 重新生成了身份验证行:

htdigest usr.pass prueba jdurini

得到了这样的东西:

jdurini:prueba:546bb2109e9d875fb486bf90a55fdbd6

新版本适合我。

通知

我猜您可能想将 Console.log('running') 行更改为小写,因为您的版本无法为我编译。

关于node.js - 使用 Express js 进行 http-auth 摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com