流星中的子域支持(与slack一样 - http://team.slack.com)

时间:2015-07-18 06:09:28

标签: meteor iron-router

meteor中的子域支持(与slack一样 - http://team.slack.com

由于松弛,我的应用程序用户可以创建自己的子域(唯一),并根据子域应该加载数据,并在此周围应用程序将继续。我可以使用像http://slack.com?team=TeamName这样的东西,但我认为子域会更干净,更好。

任何建议/指示。

感谢。

1 个答案:

答案 0 :(得分:11)

取自Meteor forums

使用DNS通配符将* .example.com指向我的应用服务器,我在客户端代码中有这个:

var hostnameArray = document.location.hostname.split( "." );

if ( hostnameArray[1] === "example" && hostnameArray[2] === "com" ) {
  var subdomain = hostnameArray[0];  
}

if ( subdomain ) {
  Meteor.call( "findTeamBySubdomain", subdomain, function (err, res) {
    var teamId = res;
    if ( teamId )
      Session.set( "teamId", teamId ); 
    }
  });
}

Tracker.autorun ( function () {
  Meteor.subscribe( "teamInfo", Session.get( "teamId" ) );
});

确保当前登录的用户有权查看teamId发布记录。任何人都可以调整他们的会话并说“我属于这个团队。”你需要确保他们真的被允许。