从accountJS服务器交换令牌时,Facebook accountkit会出错

时间:2017-09-13 12:56:50

标签: node.js ionic-framework facebook-javascript-sdk account-kit

我一直在将fb AccounKit与我的离子应用程序(NodeJS服务器)集成。前端部分已经完成,我可以发送和接收OTP和成功状态。

但是从授权代码中获取客户端令牌时,我一直得到""错误验证令牌中的令牌?''''错误。我遵循他们的官方文档中提到的相同程序。

这是我的代码:

var me_endpoint_base_url = 'https://graph.accountkit.com/v1.0/me';
token_exchange_base_url='https://graph.accountkit.com/v1.0/access_token';

var params = {
  grant_type: 'authorization_code',
  code: request.body.code,
  access_token: app_access_token
 };
}

// exchange tokens
console.log(Querystring.stringify(params))
var token_exchange_url = token_exchange_base_url + '?' + Querystring.stringify(params);
Request.get({url: token_exchange_url, json: true}, function(err, resp, respBody) {
  console.log(respBody);
  var view = {
    user_access_token: respBody.access_token,
    expires_at: respBody.expires_at,
    user_id: respBody.id,   
  };
  var me_endpoint_url = me_endpoint_base_url + '?access_token=' + respBody.access_token;
  Request.get({url: me_endpoint_url, json:true }, function(err, resp, respBody) {
    console.log(respBody);
    if (respBody.phone) {
      view.method = "SMS"
      view.identity = respBody.phone;
    } else if (respBody.email) {
      view.method = "Email"
      view.identity = respBody.email.address;
    }
  });
});

请帮帮忙?

1 个答案:

答案 0 :(得分:2)

当进行服务器到服务器的呼叫以交换令牌的代码时,您需要在您发送的访问令牌中提供您的Account Kit App Secret。 因此访问令牌应如下所示:

'AA|{app_id}|{app_secret}'

对于前。

var app_access_token = ['AA', app_id, app_secret].join('|');

您可以从帐户套件信息中心找到您的应用密码。在apps.facebook.com上的应用产品部分的“帐户套件”页面上,点击“帐户工具包应用秘密”框旁边的“显示”按钮,查看您的应用程序密码。

另外请记住,您应该从不在客户端运行的任何javascript代码中包含您的应用秘密。这个秘密只能从你的服务器端node.js代码中使用,其他任何人都不应该看到它