当我的应用程序托管在负载均衡器后面的多个无人机/实例上时,loginWithFacebook和loginWithTwitter会返回错误。
用户单击登录按钮,会出现一个弹出窗口(如果需要,请用户登录),然后消失,而不实际登录或设置Meteor.user()。
Meteor.loginWithFacebook({}, (err) ->
console.log Meteor.user() //returns undefined
if err
console.log err //return Accounts.LoginCancelledError error with no message
handleError(err)
)我正在nodejitsu上运行一个Meteor应用程序,它有2架无人机,mongoDB后端在MongoHQ上(我使用的是沙箱,所以暂时不使用oplogging )。当我在本地运行时,上面的错误永远不会重现。。
问题似乎是,来自Facebook的回调不会击中等待响应的应用程序实例,而会击中另一个实例。
在负载均衡器上启用了粘性会话,应用程序的其余部分运行良好。
有人经历过吗?这是流星上的虫子吗?这是可以由主机提供商处理的东西吗?
发布于 2014-03-02 14:46:57
之所以会发生这种情况,是因为来自facebook的回调返回到了另一个无人驾驶飞机上,并且它的会话在另一个无人驾驶飞机上无法访问(这是等待请求的那个无人机)。
如果使用粘性会话,您可以避免这种情况。如果您可以以这种方式配置负载均衡器,那么它应该可以工作。
https://stackoverflow.com/questions/22123013
复制相似问题