我正在设置流星应用程序,涉及注册用户名和密码,然后希望将该帐户与Facebook和Twitter进行连接.
我有第一部分,轻松地运行,只需使用帐户包.但是当我有一个登录的用户名叫Meteor.loginWithFacebook()时,它会将其注销并创建一个新帐户.我想要的是将Facebook凭据添加到当前登录的用户.
流星文件有这样的:
{ _id: "bbca5d6a-2156-41c4-89da-0329e8c99a4f",// Meteor.userId() username: "cool_kid_13",// unique name emails: [ // each email address can only belong to one user. { address: "cool@example.com",verified: true },{ address: "another@different.com",verified: false } ],createdAt: Wed Aug 21 2013 15:16:52 GMT-0700 (PDT),profile: { // The profile is writable by the user by default. name: "Joe Schmoe" },services: { facebook: { id: "709050",// facebook id accessToken: "AAACCgdX7G2...AbV9AZDZD" },resume: { loginTokens: [ { token: "97e8c205-c7e4-47c9-9bea-8e2ccc0694cd",when: 1349761684048 } ] } } }
这似乎是一个还有Facebook认证的用户名的帐户.但是我不知道这是否只是一个例子,你不能用基本的Meteor的东西来实现.
我想做的是基本上
Meteor.connectWithExternalAccount();
它与Meteor.loginWithExternalAccount()运行相同的过程,但只是将信息添加到当前登录的用户.
如果有人可以解释一下帐户基础包,那么我可以知道自己将会在哪里开始,这将是巨大的.
另外,有没有人知道这将会包括在任何未来版本的流星?
解决方法
所以有一些工作来解决这个问题,但不幸的是,pull request
https://github.com/meteor/meteor/pull/1133从未被合并.您最好的选择是检查流星核心Google网上论坛,看看是否有任何评论,如果没有,请查看是否可以让核心开发者对其进行评论.
如果你想继续使用拉动请求,你可以做的是删除各种Meteor帐户 – *包,然后在项目的根目录中创建一个/ packages文件夹,然后复制yubozhao的修补的帐户 – *包(可能是聪明的附加 – 自定义).然后你会流星添加帐户基础定制等,将它们添加到您的项目中.
请注意,yubozhao写的这是6-7个月前,你可能需要坚持使用任何现在的Meteor版本来工作.
2014年4月更新:
现在有一个大气包,有一个类似的用例可能是有用的:https://atmospherejs.com/package/accounts-merge