流星用户帐户问题-使用OAuth服务创建的重复帐户(accounts-google)

问题描述 投票:1回答:1

我正在使用Meteor用户帐户来创建用户。我已经实现了两种创建用户的方式。

  1. 通过使用accounts-password进行创建(默认值)。
  2. OAuth服务(accounts-googleaccounts-facebook

使用accounts-password生成的用户帐户具有如下所示的文档

{
  "_id": "DQnDpEag2kPevSdJY",
  "createdAt": "2015-12-10T22:34:17.610Z",
  "services": {
    "password": {
      "bcrypt": "XXX"
    },
    "resume": {
      "loginTokens": [
        {
          "when": "2015-12-10T22:34:17.615Z",
          "hashedToken": "XXX"
        }
      ]
    }
  },
 -----
----
}

作为使用accounts-google或account-facebook]生成的用户帐户,其文档如下所示。

{
  "_id": "Ap85ac4r6Xe3paeAh",
  "createdAt": "2015-12-10T22:29:46.854Z",
  "services": {
    "facebook": {
      "accessToken": "XXX",
      "expiresAt": 1454970581716,
      "id": "XXX",
      "email": "[email protected]",
      "name": "Ada Lovelace",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "link": "https://www.facebook.com/app_scoped_user_id/XXX/",
      "gender": "female",
      "locale": "en_US",
      "age_range": {
        "min": 21
      }
    },
---
---
---

现在的真正问题是,尽管accounts-password和accounts-google所使用的电子邮件地址相同(在我的情况下,电子邮件为[email protected]),但是正在创建两个不同的用户帐户。

我正在寻找解决方案,如下所示。 (注意:服务在单个帐户下同时具有“密码”和“ Facebook”部分)

{
  "_id": "DQnDpEag2kPevSdJY",
  "createdAt": "2015-12-10T22:34:17.610Z",
  "services": {
    "password": {
      "bcrypt": "XXX"
    },
    "facebook": {
      "accessToken": "XXX",
      "expiresAt": 1454970581716,
      "id": "XXX",
      "email": "[email protected]",
      "name": "Ada Lovelace",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "link": "https://www.facebook.com/app_scoped_user_id/XXX/",
      "gender": "female",
      "locale": "en_US",
      "age_range": {
        "min": 21
      }
    },
  },
 -----
----
}

是否有一种方法在两种情况下都只生成一个帐户,这意味着如果用户已经存在并且该用户正在尝试使用OAuth服务,则应使用第一个帐户来容纳该服务?

我正在使用Meteor用户帐户来创建用户。我已经实现了两种创建用户的方式。通过使用accounts-password来创建(默认值)。 OAuth服务(accounts-google和...

meteor meteor-accounts
1个回答
0
投票

您可以使用Accounts.setPassword 在服务器上

© www.soinside.com 2019 - 2024. All rights reserved.