Meteor ROOT_URL变量导致iOS / Android部署上的白屏或accounts-facebook重定向问题

时间:2016-03-27 17:11:26

标签: meteor reactjs facebook-login meteor-up kadira

我面临一个非常复杂的案例,其中包含MeteormupxROOT_URL环境变量。

我正在研究带有Facebook登录的React的meteor-1.2.1应用程序。在应用程序代码中设置ROOT_URL全局变量时,它在本地开发以及meteor run ios/android上都可以正常工作。

然后我使用mupx将应用程序部署到Digital Ocean服务器,并使用meteor build ./build --server=http://xxxxxx.com指向Digital Ocean服务器为iOS和Android构建。它在网络浏览器中运行良好,但在通过iTunes或AppStore将我的应用程序安装到iOS后,应用程序在启动屏幕后立即陷入白屏,但仅在首次启动时。再一次,这种情况发生在仅在安装应用程序后立即。如果我关闭应用程序并再次重新打开它,它将正确加载并继续正常工作。 Android设备上也会发生同样的情况。

以下是我的文件:

**** settings.json ****

{
  "rootUrl": "http://xxxxxx.com",
  "facebook": {
    "appId": "xxxxxxxxxxxxxxxxxxxxx",
    "secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "loginStyle": "redirect"
  },
}
**** mup.json ****

{
  "servers": [
    {
      "host": "xxxxxx.com", // actual server
      "username": "user",
      "pem": "~/.ssh/pem.key",
      "env": {}
    }
  ],
  "env": {
    "PORT": 80,
    "ROOT_URL": "http://xxxxxx.com"
  },
  "setupMongo": true,
  "setupNode": true,
  "nodeVersion": "0.10.40", // "0.10.43" for meteor-1.3
  "setupPhantom": true,
  "enableUploadProgressBar": true,
  "appName": "xxxxxx",
  "app": "../../app",
  "deployCheckWaitTime": 60
}
**** lib/_global.js ****

ROOT_URL = Meteor.settings.rootUrl;
**** server/accounts.js ****

ServiceConfiguration.configurations.upsert(
  { service: "facebook" },
  {
    $set: {
      appId: Meteor.settings.facebook.appId,
      secret: Meteor.settings.facebook.secret,
      loginStyle: Meteor.settings.facebook.loginStyle
    }
  }
);

我知道在这种情况下很难找到问题,但我猜这与Meteor ROOT_URLmupx有关。我花了很长时间进行调试,发现问题实际上是因为ROOT_URL变量而发生的。

PS:你会问我为什么要在应用代码中设置这个全局变量?这是因为accounts-facebook在成功登录后没有正确重定向,而是挂在空白的Facebook屏幕上。 Meteor - Facebook authorization simply isn't working

如果我将从应用内代码中删除ROOT_URL,则白屏问题会消失,但Facebook登录不会正确重定向。让我们假设Facebook使用Deauthorize Callback URL = http://xxxxxx.com/_oauth/facebook正确设置。

PPS:尝试将应用更新为meteor v1.3-rc.13。一样。

非常感谢任何帮助。

0 个答案:

没有答案