Meteor - 客户端上的单页应用程序,但只有在登录后 - 我该如何做到这一点?

jon*_*omo 4 meteor

我想用Meteor构建以下功能:

  1. 用户访问该网站并收到登录/注册表单,而不是其他任何内容.我不希望客户端从服务器获得任何其他信息.只是最简单的登录/注册表单.

  2. 如果用户成功登录或注册,那么我是否只想将完整的应用程序及其所有模板等下载到客户端.

是否有可能通过Meteor实现这一目标?

ala*_*ing 8

我想你有几个选择:

  • [硬]单流星应用程序

    挂钩到节点请求处理管道并在其余的Meteor参与之前进行拦截.可能最容易在server.js中执行此操作.不能使用Meteor构造 - 必须使用常规节点和NPM包,但您可以将登录令牌写入同一个MongoDB后端.

  • [更容易]两个流星应用程序

    编写一个单独的Meteor应用程序,仅执行登录并将令牌写入同一个DB,然后重定向到不同的URL.使用反向代理控制哪个应用程序处理哪个URL.

  • [最简单]等待Meteor核心中的服务器端渲染支持

    猜测它将在2014年第二季度初推出

没有测试这些,但我认为只要登录令牌最终在数据库上的用户帐户中,并且根域是相同的,这将起作用.

==更新==

关于登录应用程序,此氛围包提供预制登录页面(需要IronRouter):

==更新2 ==

2 Meteor应用程序解决方案适用于更一般的,"我想在不同的'区域'分割我的应用程序".在OP询问的简单登录表单的特定情况下,我们可以使用静态HTML页面作为初始登录页面,甚至不用担心第二个Meteor应用程序.反向代理将在这两个端点之间路由流量:

  • 一个静态服务的登陆页面(Nginx,apache等)
  • 真正的流星应用程序

使用像Route53和S3桶这样的东西,我认为它甚至可以直接从CDN提供初始登陆页面,尽管我还没有完成所有工作.