【问题标题】:Meteorjs link social media accountsMeteorjs 链接社交媒体帐户
【发布时间】:2015-08-06 07:28:40
【问题描述】:

我正在尝试使用 Atmosphere 的 bozhao:link-accounts 包,但没有成功。它不是链接帐户,而是创建其他帐户。这是我的实现的样子:

添加的包:
流星添加帐户-facebook
流星添加帐户-twitter
流星添加 bozhao:link-accounts
流星添加服务配置

<!--/client/signIn.html-->
<template name="signInTmpl">
  <button class="btn btn-facebook">Sign in with Facebook</button>  
</template>

<!--/client/linkTweets.html-->
<template name="linkTweetsTmpl">
  <button class="btn btn-twitter">Connect Twitter Account</button>
</template>
//client/signIn.js
Template.siginInTmpl.events({
  'click .btn-facebook': function() {
    Meteor.loginWithFacebook({requestPermissions: ['email']}, function(err) {
    //Do if conditional ... 
     }) 
   }
})

//client/linkTweets.js
Template.linkTweetsTmpl.events({
  'click .btn-twitter': function() {
    Meteor.linkWithTwitter(function(err) {
    //Do if conditional ... 
     }) 
   }
})

//server/accounts.js
var createServiceConfiguration;

createServiceConfiguration = function(service, clientId, secret) {
  var config;
  ServiceConfiguration.configurations.remove({
    service: service
  });
  config = {
    generic: {
      service: service,
      clientId: clientId,
      secret: secret
    },
    instagram: {
      service: service,
      clientId: clientId,
      scope: 'basic',
      secret: secret,
      loginStyle: "redirect"
    },
    facebook: {
      service: service,
      appId: clientId,
      secret: secret,
      loginStyle: "redirect"
    },
    twitter: {
      service: service,
      consumerKey: clientId,
      secret: secret,
      loginStyle: "redirect"
    }
  };
  switch (service) {
    case 'instagram':
      return ServiceConfiguration.configurations.insert(config.instagram);
    case 'facebook':
      return ServiceConfiguration.configurations.insert(config.facebook);
    case 'twitter':
      return ServiceConfiguration.configurations.insert(config.twitter);
    default:
      return ServiceConfiguration.configurations.insert(config.generic);
  }
};
//DEV KEYS
createServiceConfiguration('instagram', 'api-key', 'api-secret')
createServiceConfiguration('facebook', 'api-key', 'api-secret')
createServiceConfiguration('twitter', 'api-key', 'api-secret')
createServiceConfiguration('google', 'api-key', 'api-secret')

我成功使用 Facebook 登录,当我点击“连接 Twitter 按钮”时,它通过了授权序列,但随后完全创建了另一个帐户。

【问题讨论】:

  • 感谢@Xinzz,该软件包效果很好。我需要改进一些东西,但它看起来非常全面地满足我的需求。再次感谢。
  • 我也添加了评论作为答案。对于需要帮助的其他人,请随意投票/标记为正确。

标签: meteor


【解决方案1】:

我建议使用https://atmospherejs.com/splendido/accounts-meld 来做你想做的事。该文档非常不言自明,它支持各种帐户合并配置。

【讨论】:

    猜你喜欢
    • 2017-07-04
    • 2017-02-26
    • 2014-02-24
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2023-02-01
    • 2015-12-13
    • 1970-01-01
    相关资源
    最近更新 更多