我正在使用hapi-auth-basic的hapijs并尝试使用node-inspector进行调试。
在github页面上实现了一些示例,稍加修改,需要基本的auth on / login路径而不是所有获取:
const validate = function(username, password, callback) {
const user = users['john']; //john exists in a user array
if (!user) {
return callback(null, false);
}
callback(null, true, {
id: user.id,
name: user.name
});
};
...
server.register(require('hapi-auth-basic'), (err) => {
server.auth.strategy('simple', 'basic', {
validateFunc: validate
});
});

{
method: 'POST',
path: '/login',
config: {
auth: 'simple',
handler: require('../../public/api/handlers/login.js')
}
}

所有其他路由设置为auth:false。 我知道它适用于简单的'策略,因为如果我为/ login设置auth为false我在login.js文件中点击了一个断点。
问题是我在通话中得到401,而且我从未在验证功能中获得断点。
编辑: 标题由客户发送:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:3000
Origin:http://mac.local:3000
Referer:http://mac.local:3000/ User-Agent:Mozilla/5.0
(Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
内容为:
{"email":"a.b@com","password":"xcvx"}
我可能错过的是基本身份验证中的步骤。作为登录POST,我是否需要发送授权标头?我认为这个页面发送了要处理的有效负载,然后如果成功,所有其他请求都会对包括Authorization标头在内的某些令牌产生影响。
我正在测试aurelia-auth。使call的方法似乎没有设置任何标头。我是否需要配置任何设置?
答案 0 :(得分:0)
我在案件中发现了问题。
我正在尝试验证"登录"使用hapi-auth-basic进行POST。这意味着它需要先前设置的身份验证密钥。但它不应该那样工作。您可以通过https发送有效负载中的用户名和密码以覆盖您的曲目。然后服务器说OK,并用您的加密标识发回auth标头。然后,您使用此标头拨打任何限制'领域
我正在组合' jwt'与基本'的方式没有充分理由的方式。
第3课。阅读github源代码!