Auth0 - 如何通过 Auth0 在 localhost 上使用 mongoDB

Posted

技术标签:

【中文标题】Auth0 - 如何通过 Auth0 在 localhost 上使用 mongoDB【英文标题】:Auth0 - How to use mongoDB on localhost with Auth0 【发布时间】:2017-07-01 08:07:19 【问题描述】:

我在 Auth0 上创建了一个名为 local-mongo 的新数据库连接,我正在尝试使用 Create 脚本在我的本地 mongoDB 上创建一个用户,但我不断收到这个 Socket Hang Up 错误:

[Error] Error: socket hang up
at createHangUpError (_http_client.js:211:15)
at Socket.socketOnEnd (_http_client.js:303:23)
at emitNone (events.js:72:20)
at Socket.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:913:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickDomainCallback (node.js:397:17)

Auth0上的创建脚本模板如下:

function create (user, callback) 
   mongo('mongodb://localhost:27107.com/my-db', function (db) 
   var users = db.collection('users');

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

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

  bcrypt.hash(user.password, 10, function (err, hash) 
    if (err)  return callback(err); 
    user.password = hash;
    users.insert(user, function (err, inserted) 
      if (err) return callback(err);
      callback(null);
    );
  );
);
);

我是否需要 ngrok 才能连接到本地数据库,还是我在这里缺少另一种方式?任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

在上述脚本有效的基础上,你的问题是如何连接本地主机,那么答案是肯定的。

如果适合您的情况,您可能只想使用 mongo 云服务提供商,因为那时您将自动获得云访问权限。或者只是安装在 Amazon EC2 实例上并设置安全组以允许访问所需的端口等。

但是,是的,基本上这些是您的选择。需要与您的数据库服务器建立网络连接。另一种方法是在自定义数据库脚本和后端数据库之间放置一个 API。

有关执行此操作的 Node.js 示例示例,请参见此处:

node api sample

对于自定义数据库脚本,请参见此处:

postgres custom db scripts

您可以修改上述内容以改用 mongo。只是一个想法。

【讨论】:

呸,我不知道我怎么没想到只是用 mlab 测试它。使用它时工作得很好。我将尝试另一种方法以及两者之间的 API。我的应用程序是用 React 和 Express 制作的,所以我认为你的建议应该可以正常工作。非常感谢您的帮助。 很高兴听到!感谢您确认答案:)

以上是关于Auth0 - 如何通过 Auth0 在 localhost 上使用 mongoDB的主要内容,如果未能解决你的问题,请参考以下文章

Auth0.com,它是如何运作的?

如何在 Symfony 中访问已登录的 Auth0 用户的电子邮件地址?

阿波罗服务器 2 + Auth0

如何使用 Nuxtjs 实现 Auth0 服务器端?

如何在Redux中使用Auth0 JWT访问API?

如何查看存储在 JWT 中的数据?使用 auth0 和 express-jwt