这是我的代码,现在的问题是当我使用 hapi 14.xx 或更低版本运行它时,它对我来说非常好,但是当我使用 hapi 15.0.1 或更高版本运行它时,它给了我以下错误。
认证过程有什么变化吗?
throw new Error(msgs.join(' ') || 'Unknown error');
^
Error: Unknown authentication strategy UserAuth in /api/user/loginDetails
at Object.exports.unique.exports.contain.exports.reachTemplate.exports.assert.condition [as assert] (F:\cbl\projects\lawn-mower\node_modules\hapi\node_modules\hoek\lib\index.js:736
:11)
at internals.Auth.test.internals.Auth._setupRoute (F:\cbl\projects\lawn-mower\node_modules\hapi\lib\auth.js:144:14)
我正在使用的示例路线
{
method: 'POST',
path: '/api/user/loginDetails',
config: {
auth: 'UserAuth',
handler: function (request, reply) {
},
validate: {
payload: {
},
headers: UniversalFunctions.authorizationHeaderObj,
failAction: UniversalFunctions.failActionFunction
},
plugins: {
'hapi-swagger': {
payloadType : 'form',
responses:Config.APP_CONSTANTS.swaggerDefaultResponseMessages
}
}
}
}
我正在使用的策略
server.register(require('hapi-auth-bearer-token'), function (err) {
console.log("aaaaa");
server.auth.strategy('UserAuth', 'bearer-access-token', {
allowQueryToken: false,
allowMultipleHeaders: true,
accessTokenName: 'accessToken',
validateFunc: function (token, callback) {
}
});
});
这为我解决了插件注册与 hapi 版本 15.xx 或更高版本异步的问题
说明:在 14.xx 或更低版本中,事情是同步进行的,例如当我们启动服务器时,它会先查找注册插件,然后再查找路由server.route(Routes)。
这在 hapi 15.xx 及更高版本中得到修复,现在插件注册是异步的,所以我们需要先注册我们的插件,然后需要初始化路由,如下例所示。
单击此处从最新更新线程中获取有关它的更多详细信息,编号为 3295
server.register(Plugins, function (err) {
if (err){
console.log("===========err=========",err)
server.error('Error while loading plugins : ' + err)
}else {
console.log("====================");
server.route(Routes);
server.log('info','Plugins Loaded');
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句