2017-12-04 24 views
0

nodejsにダイジェスト認証を実装しようとしています。以下のコードhttp-authを使用したダイジェスト認証

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:サンプル:e4b2d19b03346a1c45ce86ad41b85c5eユーザー名ankit、PWD ankit &レルムサンプル、毎回でエンドポイントを呼び出すために郵便配達を使用し

私は401を取得しています。

私が間違っていることを教えてください。

ありがとうございました

答えて

0

基本認証とダイジェスト認証が混在しています。 auth.basicauth.digestに置き換え、コードがそのまま動作するはずです。

関連する問題