使用相同的数据库登录两个流星应用程序

时间:2017-06-04 05:19:06

标签: javascript meteor meteor-accounts

我有两个共享相同数据库的Meteor应用程序,因此它们具有相同的帐户。我想这样做,以便当用户登录App1时,他也会在访问App2时自动登录。

这可能吗?你会怎么建议我这样做?非常感谢你!

P.S。 Meteor官方指南在"共享账户"提供类似的内容。 "数据结构"部分,但是当我尝试它时,它并没有真正起作用。它应该有效吗?

2 个答案:

答案 0 :(得分:0)

  

P.S。 Meteor官方指南在“数据结构”部分的“共享帐户”中提供了类似的内容,但是当我尝试它时,它并没有真正起作用。它应该有效吗?

这是要走的路,当然有效! this example repository.

中有这种架构的概念证明

您不会自动登录到第二个应用程序。当您登录第一个应用程序时,必须以编程方式登录到第二个应用程序。

指南中的代码是要走的路:

// This is server A's token as the default `Accounts` points at our server
const token = Accounts._storedLoginToken();

// We create a *second* accounts client pointing at server B
const app2 = DDP.connect('url://of.server.b');
const accounts2 = new AccountsClient({ connection: app2 });

// Now we can login with the token. Further calls to `accounts2` will be authenticated
accounts2.loginWithToken(token);

答案 1 :(得分:0)

两个选项(可以一起使用):

  1. 通过$.map环境变量
  2. 将两个应用指向同一个MongoDB
  3. 通过MONGO_URL环境变量
  4. 将客户端从两个网站指向同一个WebSockets端点

    实施例: 主要应用:

    DDP_DEFAULT_CONNECTION_URL

    第二个应用:

    ROOT_URL=https://example1.com
    DDP_DEFAULT_CONNECTION_URL=https://example1.com
    MONGO_URL=mongodb://mongo.example1.com:27000