将express / mongodb / websockets项目迁移到什么?

在Weld,我们自己到目前为止一直在处理我们的用户项目。 该设置是一个实时应用程序,用户通过websockets和Node.js express服务器创build自己的内容,并保存在mongodb中。 身份validation是通过passport.js本地策略处理的。

我们希望摆脱这种责任,最好让托pipe的第三方服务处理客户端和服务器之间的所有数据存储和同步。

我们想要的是:

  • 导入/导出我们当前的mongodb数据库,没有太多的工作。
  • 使用目前的基于passport.js的解决scheme进行身份validation。
  • 自动客户端/服务器同步(当客户端上的项目被修改时,它应该实时传播到数据库)

我一直在寻找meteor.js和firebase,而这真的很难知道哪条路线导致最less的痛苦。 特别是auth部分似乎很难解决。

我应该select哪种解决scheme?它的分步过程是什么?

我为Stormpath工作的公司基本上是作为一种服务。 它可以免费用于小型项目,如果您打算使用它,您可以付费。 超级便宜。

你可以使用我们的:

  • Stormpath护照战略 ,或
  • 我们的express.js集成 (我build议,这是相当惊人的)。

以下是我们的快递员的工作原理(非常简单):

var express = require('express'); var stormpath = require('express-stormpath'); var app = express(); app.use(stormpath.init(app)); app.listen(3000); 

上面的代码是一个全function的express.js应用程序与注册,login等如果您运行该应用程序,然后访问http:// localhost:3000 /注册 ,你会看到一个注册页面,并能够实际上创build用户账户。 巴姆。

Express-Stormpath注册页面

如果您访问login页面(/login)或注销页面(/注销),情况也是如此。

所有这些显然都可以定制。

例如,如果要启用密码重置function,以便让忘记密码的用户重置密码,则也可以这样做! 具体方法如下: https : //docs.stormpath.com/nodejs/express/product.html#use-password-reset

想要访问用户对象并在用户上存储一些数据? 这很容易,下面是一个示例路线:

 app.use(stormpath.init(app, { expandCustomData: true })); app.get('/secret', stormpath.loginRequired, function(req, res) { req.user.customData.favoriteColor = 'black'; req.user.customData.save(); res.send('Hi: ' + req.user.givenName + '! Your favorite color is: ' + req.user.customData.favoriteColor + '!'); }); 

它也可以做很多其他的东西:

  • APIauthentication
  • 重设密码
  • 社交login(脸谱,谷歌)
  • 帐户validation
  • 还有更多。