我是Hapijs的新手,我的路由身份验证配置存在一些问题。
错误:
[1] "auth" must be a string
[2] "strageties" is not allowed
路线
exports.register = (server, options, next) => {
server.route({
method: 'GET',
path: '/',
config: {
auth: {
mode: 'try',
strageties: ['session'] // or strategy: 'session'
},
handler: (request, reply) => {
return reply.view('partials/index');
}
}
});
return next();
};
exports.register.attributes = {
name: 'routes-home'
};
战略前导
server.auth.strategy(Providers.Session, 'cookie', {
password: config.server.SECRET,
redirectTo: '/login',
isSecure: false
});
我正在使用happy-auth-cookie和bell。我也有更多的策略,如github,twitter ......如果我将auth设置为只是会话它工作。 身份验证:'会话'
答案 0 :(得分:0)
搞定了。我不得不像我这样提供模式:
server.auth.strategy(Providers.Session, 'cookie', 'try', { //<= 'try'
password: config.server.SECRET,
isSecure: false
});
我还必须删除 redirectTo 属性。 在策略级别设置模式提供了我正在寻找的功能。基本上,我需要检查用户是否在每条路线中登录,因为我的导航菜单会根据结果而改变。将路由身份验证配置设置为&#39; session&#39;对于只能由登录用户访问的路由。
请参阅:server.auth.stragety。