微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Node.js服务器上的http请求获取LinkedIn访问令牌

如何解决通过Node.js服务器上的http请求获取LinkedIn访问令牌

我正在关注Authorization Code Flow (3-legged OAuth)文档,现在是第3步,我需要使用授权代码才能从LinkedIn接收访问令牌。在项目中,我使用的是node.js,打字稿和node-fetch库。以下函数创建内容类型为x-www--form-urlencoded的主体,因为这是LinkedIn要求的内容类型。

async function GetAccesstoken(data: any) {

    let body: string | Array<string> = new Array<string>();
    for (let property in data) {
        let encodedKey = encodeURIComponent(property);
        let encodedValue = encodeURIComponent(data[property]);
        body.push(encodedKey + "=" + encodedValue);
    }
    body = body.join("&");

    const response = await fetch("https://www.linkedin.com/oauth/v2/accesstoken",{
        method: 'POST',headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},body: body
    }).then((res: any) => {
        console.log("Result",res);
    });
    return response;
}

我没有收到任何错误,响应状态为200,但是我收到的响应值为:

size: 0,timeout: 0,

LinkedIn的承诺是:

access_token
expires_in

当我使用邮递员发布带有参数的url时,请求通过,并且我收到了正确的数据,这表明问题出在我的请求函数而不是我的值之内。

感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。