我使用bell和另一个使用hapi-auth-cookie创建了一个auth策略。但是,当我尝试设置会话时request.auth.session
未定义。有人能帮我弄清楚我哪里出错吗?
我的路线:
module.exports = [
{
method: 'GET',
path: '/create-an-account',
config: {
auth: {
strategy: 'auth0',
mode: 'try'
}
},
handler: function(request, reply) {
var credentials = request.auth.credentials;
request.auth.session.set(credentials);
return reply.view('create-an-account');
}
}
]
我的身份验证策略:
exports.register = function (server, options, next) {
server.register([Bell, Cookie], function (err) {
server.auth.strategy('auth0', 'bell', {
provider: 'auth0',
config: {
domain: process.env.AUTH0_CLIENT_DOMAIN,
},
password: 'cookie_encryption_password_secure',
clientId: process.env.AUTH0_CLIENT_ID,
clientSecret: process.env.AUTH0_CLIENT_SECRET,
isSecure: false // For developing locally
});
server.auth.strategy('session', 'cookie', {
password: 'cookie_encryption_password_secure',
cookie: 'sid',
redirectTo: '/create-an-account',
redirectOnTry: false,
isSecure: false
});
});
return next();
};
答案 0 :(得分:2)
我们之前在其中一个项目中遇到过这个问题。 Hapi-auth-cookie已更改其文档,因此他们更长时间使用request.auth.session.set(credentials);
如果您将该行更改为request.cookieAuth.set()
,则应该有效。很多在线的例子似乎都使用了旧的例子,这是我们第一次错过它的方式。
这也是在另一个SO答案中获得的> request.auth.session.set(user_info) not working HapiJS