无法验证来自Linkedin的访问令牌

时间:2018-05-25 11:33:53

标签: node.js angular

使用访问令牌, 发布到api端点https://api.linkedin.com/v1/people/ \〜 在此之后,我们收到401以下内容:

Method: POST:
URL: https://api.linkedin.com/v1/people/\~
Error: 
{
  "errorCode": 0,
  "message": "Unable to verify access token",
  "requestId": "C0DUCX81SA",
  "status": 401,
  "timestamp": 1421946470523
}

请帮助我理解或解决问题。

3 个答案:

答案 0 :(得分:0)

401表示未经授权的请求。

根据错误,我认为您没有发送访问令牌。 请添加您的代码,以便让我了解更多。

<强>更新

您正在查询中发送令牌,这就是导致问题的原因。

LinkedIn不接受身份验证标头,并且需要一个请求参数: oauth2_access_token

您的标题应该是:

{
    "oauth2_access_token": "Your_token_here"
}

希望这会对你有所帮助。

答案 1 :(得分:0)

您如何检索访问令牌?确保您已按照https://developer.linkedin.com/docs/oauth2下列出的步骤进行操作。

在对Profile API进行身份验证请求时,您需要在请求中添加Authorization标头。

GET /v1/people/~ HTTP/1.1 Host: api.linkedin.com Connection: Keep-Alive Authorization: Bearer AQXdSP_W41_UPs5ioT_t8HESyODB4FqbkJ8LrV_5mff4gPODzOYR

答案 2 :(得分:-1)

我使用XMLHttpRequest

将访问令牌从客户端发送到服务器
 let xhr = new XMLHttpRequest();
      xhr.open('POST', 'http://localhost:3000/' + url);
      xhr.setRequestHeader('Content-Type', 'application/json');
      xhr.setRequestHeader('token', this.sessionInfo.token);

并将服务器端的令牌验证为

router.route('/auth/linkedin')
    .post(function verifyLinkedinAccessToken(req, res, Ltoken) {
        var Ltoken = req.headers ['token'];


        // Authorization: Bearer [Ltoken];
        console.log('LinkedIn token from client ==== ', Ltoken);

        var path =  'https://api.linkedin.com/v1/people/~?oauth2_access_token=' + Ltoken;
        request(path, function (error, response, body) {
            var data = JSON.stringify(body);
            console.log(data);

            if (!error && response && response.statusCode && response.statusCode == 200) {
                var user = {
                    linkedinUserId: data.id,
                    fullName: data.name
                };
                var jtoken = jwt.sign({ linkedinUserId: data.id }, 'twinesoft', { expiresIn: '3h' });
                res.json(jtoken);  
            }
            else {
                console.log(data.error);
            }
        });

在此之后,我们收到401以下内容:

{
  "errorCode": 0,
  "message": "Unable to verify access token",
  "requestId": "C0DUCX81SA",
  "status": 401,
  "timestamp": 1421946470523
}