【问题标题】:Meteor access tokens流星访问令牌
【发布时间】:2012-09-24 18:33:24
【问题描述】:

当使用Meteor 和新的authentication 系统时,使用accounts-facebook 包登录时如何获取facebook 访问令牌

【问题讨论】:

    标签: oauth meteor


    【解决方案1】:

    从 Meteor.method 获取它:

    // server
    Meteor.methods({
      getAccessToken : function() {
        try {
          return Meteor.user().services.facebook.accessToken;
        } catch(e) {
          return null;
        }
      }
    }); 
    
    // client
    Meteor.call("getAccessToken", function(error, accessToken){
       console.log(accessToken);
    })
    

    或发布它:

    //server
    Meteor.publish("currentUserAccessToken", function(){
        var self = this;
        if (this.userId()){
            handle = Meteor.users.find(this.userId()).observe({
                added: function(user){
                    self.set("currentUserAccessToken", user._id, {value: user.services.facebook.accessToken});
                    self.flush();
                },
                changed: function(user){
                    self.set("currentUserAccessToken", user._id, {value: user.services.facebook.accessToken});
                    self.flush();
                }
            });
    
            this.onStop(function() {
                handle.stop();
            });
        }
    });
    
    //client
    var AccessToken = new Meteor.Collection("currentUserAccessToken");
    Meteor.subscribe("currentUserAccessToken");
    
    //access the value
    var accessToken = AccessToken.findOne().value;
    

    【讨论】:

    • 您节省了一天(实际上是几天)。谢谢!
    【解决方案2】:

    更新和简化Lloyd's answer,我们得到这个:

    服务器

    Meteor.publish("currentAccessToken", function(){
      return Meteor.users.find(this.userId, {fields: {'services.facebook.accessToken': 1}});
    });
    

    客户

    Meteor.autosubscribe(function(){
      var newUser = Meteor.user();
      Meteor.subscribe('currentAccessToken');
    });
    

    每次您的用户更改状态时它都会更新,并且访问令牌可以通过Meteor.user().services.facebook.accessToken 访问(如果存在)

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 2020-01-09
      • 2021-08-23
      • 1970-01-01
      • 2018-01-02
      • 2019-08-25
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多