2016-11-09 98 views
1

我使用bell和另一个使用hapi-auth-cookie创建了一个auth策略。但是,当我尝试设置会话request.auth.session未定义。有人能帮我弄清楚我哪里出错了吗?为什么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(); 
}; 

回答

1

我们有这个问题,前一阵我们的项目之一。哈皮认证 - 饼干已经改变了他们的文件,使他们不再使用如果把上面一行request.cookieAuth.set(),而不是它应该工作request.auth.session.set(credentials);

这里有一个link to the commit

。网上的很多例子似乎都使用了我们第一次错过的旧例子。

这也是在另一个SO拿起答案here>request.auth.session.set(user_info) not working HapiJS