有没有简单的方法为Meteor应用程序设置HTTP基本身份验证?

时间:2012-09-01 18:44:42

标签: basic-authentication meteor

我有一个简单的Meteor应用程序演示,我想部署它,但我希望它受密码保护。不需要个人用户帐户 - 现在只需一个登录/ pword即可。

有什么建议吗?我意识到Meteor在积极开发中有一个auth分支,所以不久之后就会有一个全功能的解决方案。但如果有人能建议短期阻力最小的道路,我将不胜感激。

感谢

2 个答案:

答案 0 :(得分:4)

是的,如果您编写一小段连接中间件然后将其放入堆栈的开头,则可能。试试这个: -

if (Meteor.is_server) {
  Meteor.startup(function () {
    var require = __meteor_bootstrap__.require;
    var connect = require('connect');

    __meteor_bootstrap__.app.stack.splice(0, 0, {
      route: '',
      handle: connect.basicAuth(function(user, pass){
        return 'guest' == user & 'password' == pass;
      })
    });
  });
}

答案 1 :(得分:2)

我必须稍微调整@Jabbslad代码才能使其与0.6.5一起使用:

if (Meteor.is_server) {
  Meteor.startup(function () {
    WebApp.connectHandlers.stack.splice(0, 0, {
      route: '',
      handle: WebApp.__basicAuth__(function(user, pass){
        return 'guest' == user & 'password' == pass;
      })
    });
  });
}

我不喜欢用connect.basicAuth替换WebApp.__basicAuth__,但Npm.require("connect")在Meteor 0.6.5中抛出错误,我找不到原因。