Auth0自定义数据库mongodb

时间:2016-02-27 22:57:55

标签: mongodb auth0

我正在尝试将用户存储在我自己的mongo数据库而不是默认值(auth0服务器)。

以下是剧本:

function create (user, callback) {
    mongo('mongodb://admin:pass@localhost:27017/mydb', function (db) {
    var users = db.collection('subscribers');

    users.findOne({ email: user.email },
        function (err, withSameMail) {

            if (err) return callback(err);
            if (withSameMail) return callback(new Error('the user already exists'));

            user.password = bcrypt.hashSync(user.password, 10);

            users.insert(user, function (err, inserted) {  
                if (err) return callback(err);
                callback(null);
            });
        });
    });
}

这是我尝试创建用户时遇到的错误:

[Error] Error: socket hang up
at createHangUpError (_http_client.js:200:15)
at Socket.socketOnEnd (_http_client.js:285:23)
at emitNone (events.js:72:20)
at Socket.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:437:9)
at process._tickDomainCallback (node.js:392:17)

1 个答案:

答案 0 :(得分:3)

您的mongodb位于 localhost 中(请参阅您的连接字符串)。 create脚本在Auth0服务器中运行,因此无法访问 localhost (您的计算机)。

通常,您的实例将在可从Auth0访问的服务器上运行(例如,mongolabs,AWS中的服务器等)。如果您正在测试,那么您可能需要查看ngrok

Blakes建议缓存连接是一个很好的建议,但这是一个优化,而不是它无法正常工作的原因。