Meteor 如何在创建期间处理多个帐户服务?
目前,我有一个自定义的谷歌按钮登录基于: 在accounts.js中,我执行以下操作以获取google帐户信息:Meteor 如何在创建期间处理多个帐户服务?,meteor,Meteor,目前,我有一个自定义的谷歌按钮登录基于: 在accounts.js中,我执行以下操作以获取google帐户信息: Accounts.onCreateUser(function (options, user){ var accessToken = user.services.google.accessToken, result,profile; result = Meteor.http.get("https://www.googleapis.com/oauth2/v3
Accounts.onCreateUser(function (options, user){
var accessToken = user.services.google.accessToken,
result,profile;
result = Meteor.http.get("https://www.googleapis.com/oauth2/v3/userinfo", {
params: {
access_token: accessToken
}
});
....
service.js
ServiceConfiguration.configurations.remove({
service: "google"
});
ServiceConfiguration.configurations.insert({
service: "google",
clientId: "...",
secret: "..."
});
目前它只处理谷歌,但我还想添加帐户密码和fb。如何检查onCreateUser该服务是什么服务以及它是否是自定义的
更新:
if (user.services.google !== undefined){
//google service
}
if (user.services.facebook !== undefined){
//facebook service
}
Accounts.onCreateUser(函数(选项,用户){
执行
console.log(选项)
和console.log(用户)
。使用常规/facebook/twitter帐户执行此操作,您将看到差异。问题:“Meteor帐户系统目前不支持将不同的外部服务帐户(如twitter、facebook)链接到同一Meteor用户。”请看一下这个pull请求,它应该对您有所帮助:我并不希望将多个帐户链接到一个用户帐户,而是尝试创建自定义登录,而不使用{{loginButton}因此,用户使用google、custom或fb创建了一个帐户。问题是,在服务器端,我需要知道他们使用了哪种服务,以便访问相应的访问令牌。我最终找到了答案,但accounts.js位于服务器端,它不会输出到浏览器控制台,但会在终端上显示[object object]。