我正在设置一个流星应用程序,涉及注册用户名和密码,然后希望将该帐户与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()相同的进程,但只是将信息添加到当前登录的用户 .
如果有人可以稍微解释基于帐户的程序包,那么我就可以知道从哪里开始,这将是非常好的 .
此外,有没有人知道这是否将包含在任何未来的Meteor版本中?
2 回答
所以有一些工作要解决这个问题,但遗憾的是拉动请求https://github.com/meteor/meteor/pull/1133从未合并过 . 可能你最好的选择是检查流星核心的Google网上论坛,看看是否有任何评论,如果没有,看看你是否可以得到一个核心开发者来评论它 .
如果你仍想使用拉取请求,你可以做的是删除各种Meteor
accounts-*
包,然后在项目的根目录中创建一个/packages
文件夹,并在那里复制yubozhao的补丁accounts-*
包(可能很聪明地附加-custom
) . 然后你将meteor add accounts-base-custom
等添加到你的项目中 .但是请注意,yubozhao在6-7个月之前写道,你可能需要坚持使用当时流行的任何版本的Meteor .
2014年4月更新:现在有一个Atmosphere包,它有一个类似的用例,可能很有用:https://atmospherejs.com/package/accounts-merge
这是一个适合我的代码(在服务器文件夹内):
在客户端js文件夹中:
};
模板事件中的相同js文件:
而对于html刚做完这个:
主要是您需要将数据服务设置为您的服务,然后模板单击事件获取数据服务并执行addUserService(数据传递) .
希望它能奏效,请告诉我 .