【发布时间】:2017-08-14 05:02:43
【问题描述】:
我是 hapijs 的新手,我正在做一个使用 hapi-auth-basic 进行身份验证的演示应用程序。
但我的代码,
(server.auth.strategy('simple', 'basic', { validateFunc: validate});) validate 方法没有被调用,结果总是给未授权的如下:
{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing authentication"
}
我想授权,谁能建议我该怎么做以及我做错了什么?
'use strict';
const Bcrypt = require('bcrypt');
const Hapi = require('hapi');
const Basic = require('hapi-auth-basic');
const server = new Hapi.Server();
server.connection({ port: 3000 });
const users = {
john: {
username: 'john',
password: '$2a$10$iqJSHD.BGr0E2IxQwYgJmeP3NvhPrXAeLSaGCj6IR/XU5QtjVu5Tm', // 'secret'
name: 'John Doe',
id: '2133d32a'
}
};
const validate = function (request, username, password, callback) {
const user = 'john';
console.log("1");
if (!user) {
return callback(null, false);
}
Bcrypt.compare(12345, 12345, (err, isValid) => {
console.log("2");
callback(err, isValid, { id: user.id, name: user.name });
});
};
server.register(Basic, (err) => {
console.log("3");
if (err) {
throw err;
}
server.auth.strategy('simple', 'basic', { validateFunc: validate});
server.route({
method: 'GET',
path: '/',
config: {
auth: 'simple',
handler: function (request, reply) {
console.log("4");
reply('hello, ' + request.auth.credentials.name);
}
}
});
server.start((err) => {
if (err) {
throw err;
}
console.log('server running at: ' + server.info.uri);
});
});
【问题讨论】:
-
你能解决这个问题吗...??