我正在使用Meteor用户帐户来创建用户。我已经实现了两种创建用户的方式。
使用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和...
您可以使用Accounts.setPassword
在服务器上