首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用http-auth摘要身份验证

使用http-auth摘要身份验证
EN

Stack Overflow用户
提问于 2017-12-04 18:47:01
回答 1查看 413关注 0票数 0

尝试在nodejs中实现摘要身份验证。下面是代码

代码语言:javascript
复制
var http = require('http');
var auth = require('http-auth');
var express = require('express');
var app = express();
var user;

var basic = auth.basic({
    realm: 'Sample',
    file: __dirname + "/users.htpasswd",
    algorithm:'md5'
});

basic.on('success', (result, req) => {
    console.log(`User authenticated: ${result.user}`);
    user = result.user;
});

basic.on('fail', (result, req) => {
    console.log(`User authentication failed: ${result.user}`);
    console.log(req.headers.authorization);
});

basic.on('error', (error, req) => {
    console.log(`Authentication error: ${error.code + " - " + error.message}`);
});

http.createServer(app).listen(8000);

app.use(auth.connect(basic));

app.get('/', function(req, res) {
    console.log(req.headers);
    console.log(basic);
    res.json('Hello from '+ user);
    res.end();
});

app.post('/', function(req, res) {
    console.log(req.headers);
    console.log(basic);
    res.json('Hello from '+ user);
    res.end();
});

这是users.htpasswd文件的内容:- ankit:Sample:e4b2d19b03346a1c45ce86ad41b85c5e

使用postman调用端点,用户名为ankit,pwd ankit & realm Sample,每次我得到401。

请告诉我我哪里做错了。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-05 01:41:39

您混合了基本身份验证和摘要身份验证。用auth.digest替换auth.basic,您的代码应该可以按原样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47631570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档