我使用hapi-auth-cookie来保存cookie并创建会话。某些部分已锁定,未经身份验证不允许用户访问它。当用户未登录时,他已成功重定向到登录路由。在用户再次点击同一链接进行身份验证后,它最有可能在处理cookie时抛出错误。这是会话注册:
plugin.auth.strategy('session', 'cookie', {
password: 'hapissajafdhafdjahyfjkdgsyjasfydukfeyafdheavjdfaejmyfdja',
cookie: 'sid-cuboid',
redirectTo: '/',
isSecure: false,
validateFunc: function(request, session) {
var cached = cache.get(session.sid);
var out = {
valid: !!cached
};
if (out.valid) {
out.credentials = cached.account;
}
return out;
}
});
这是我的路线:
plugin.route({
method: 'GET',
path: '/edit/{courseName}/{testNo}/{plunkId}',
config: {
auth: {
strategy: 'session'
},
plugins: {
'hapi-auth-cookie': {
redirectTo: '/'
}
}
},
handler: function(request, reply) {
var server = this.config.server;
var param = request.params;
var courseName = request.params.courseName;
var context = {
"url": {
"run": ""
}
};
reply.view("editor", context);
}
});
这是我得到的错误:
Debug: internal, implementation, error
TypeError: Uncaught error: Cannot read property 'apply' of undefined
at bound (domain.js:280:13)
at runBound (domain.js:293:12)
at /home/satnam-sandhu/Workstation/cuboid.io/node_modules/glue/node_modules/hoek/lib/index.js:858:22
at doNTCallback0 (node.js:419:9)
at process._tickDomainCallback (node.js:389:13)
注意:我使用的是[email protected]和[email protected]
通过删除validateFunc解决了上述问题。错误的原因仍然未知。