从Azure Easy API获取Facebook身份验证令牌

从Azure Easy API获取Facebook身份验证令牌,azure,azure-mobile-services,facebook-access-token,Azure,Azure Mobile Services,Facebook Access Token,Easy API的文档记录非常糟糕,我正试图通过Azure从用户处获取Facebook身份验证令牌,我创建了一个API,具有以下get: module.exports = { "get": function (req, res, next) { res.json(req.user.getIdentity("facebook")); } }; 但是,azure的响应是“无法从未定义中读取属性'getIdentity'。如果用户在res中未定义,我可以从何处获取它?

Easy API的文档记录非常糟糕,我正试图通过Azure从用户处获取Facebook身份验证令牌,我创建了一个API,具有以下get:

module.exports = {
    "get": function (req, res, next) {
        res.json(req.user.getIdentity("facebook"));
    }
};

但是,azure的响应是“无法从未定义中读取属性'getIdentity'。如果用户在res中未定义,我可以从何处获取它?

Azure Mobile Apps Node.js SDK HOWTO和API文档中记录了Easy API。您可以在此处找到操作指南:

至于具体的问题,getIdentity()是一种基于承诺的机制。此外,您需要通过azureMobile属性访问用户对象。比如:

module.exports = {
    "get": function (req, res, next) {
        req.azureMobile.user.getIdentity("facebook").then((data) => {
            res.status(200).type('application/json').json(data);
        }).catch((error) => {
            res.status(500).send(JSON.stringify(error));
        });
    }
};

谢谢你,阿德里安。我花了数小时试图找到实现这一点的代码。这应该添加(并突出显示)到移动应用程序身份验证文档中(以及从其他3个主要服务获取详细信息所需的代码)。这一功能对于许多应用程序来说都是基础,但信息确实很难找到。大多数可能是解决方案都不起作用,因为它们是为Az移动服务而不是Az移动应用程序创建的。我并不反对——我不为微软工作,所以无法对它们的文档做任何事情。