想要创建一个启动页面,用户可以在其中输入对每个人都相同的站点密码。仅在预览时隐藏站点。不知道为什么我不知道如何做到这一点。在流星中它必须相对直截了当。
目前已安装 Meteor-Router。这是最好的方法吗?我该怎么做?
谢谢
这是 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
只有当用户真正知道秘密时,该变量才会被设置。当然,这实际上并不安全(他们的用户可以打开控制台并手动设置会话变量),但这是一个开始。尝试所有这些,看看它是否能让你更接近一个可行的解决方案。