Facebook accountkit 在从 nodeJS 服务器交换令牌时出错

Facebook accountkit gives error when exchanging tokens from nodeJS server

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

但是在从授权代码中获取客户端令牌时,我不断收到“"Error verifying the token in the \'access_token\'"”错误。我遵循了他们官方文档中提到的相同程序。

这是我的代码:

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;
    }
  });
});

请帮忙?

在进行服务器到服务器调用以交换令牌代码时,您需要在发送的访问令牌中提供您的帐户工具包应用密码。 所以访问令牌应该是这样的:

'AA|{app_id}|{app_secret}'

例如

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

您可以从 Account Kit 仪表板找到您的应用密码。在 developers.facebook.com 上进入您应用的产品部分下的 "Account Kit" 页面,然后单击 "Account Kit App Secret" 框旁边的 "Show" 按钮以查看您的应用密码。

另请记住,您应该永远不要在客户端运行的任何javascript代码中包含您的应用程序机密。这个秘密只能在您的服务器端 node.js 代码中使用,其他人应该无法看到它