0

想要创建一个启动页面,用户可以在其中输入对每个人都相同的站点密码。仅在预览时隐藏站点。不知道为什么我不知道如何做到这一点。在流星中它必须相对直截了当。

目前已安装 Meteor-Router。这是最好的方法吗?我该怎么做?

谢谢

4

1 回答 1

0

这是 CoffeeScript 中的一个可能答案:

在类似的地方添加一个过滤器Router

Meteor.Router.filters
  'authorizeUser': (page) ->
    if Session.get 'knowsTheSecret' then page else 'splash'

Meteor.Router.filter 'authorizeUser'

也就是说,每个页面请求都必须knowsTheSecret设置会话变量,否则用户将被引导回splash页面(在其他地方定义)。

在服务器上(就像把它放在server目录中一样)。创建一个验证密码的方法:

Meteor.methods
  checkSecret: (string) ->
    string is 'super secret password'

当用户单击启动页面上的登录按钮时,您可以像这样调用该方法:

Template.splash.events
  'click button': ->
    password = $('#text-field').val()
    Meteor.call 'checkSecret', password, (err, result) ->
      Session.set 'knowsTheSecret', result

因此,Session只有当用户真正知道秘密时,该变量才会被设置。当然,这实际上并不安全(他们的用户可以打开控制台并手动设置会话变量),但这是一个开始。尝试所有这些,看看它是否能让你更接近一个可行的解决方案。

于 2013-05-15T22:03:04.703 回答