Невозможно проверить токен доступа от Linkedin - PullRequest
0 голосов
/ 25 мая 2018

Используя токен доступа, отправьте сообщение на конечную точку 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 голосов
/ 25 мая 2018

Я отправляю токен доступа с клиента на сервер, используя 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
}
0 голосов
/ 25 мая 2018

Как вы получаете токен доступа?Убедитесь, что вы выполнили действия, описанные в разделе https://developer.linkedin.com/docs/oauth2.

. При отправке запроса с проверкой подлинности в API профиля вам необходимо добавить заголовок Authorization к вашему запросу.

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

0 голосов
/ 25 мая 2018

401 означает неавторизованный запрос.

И что касается ошибки, я думаю, что вы не отправляете токен доступа.Пожалуйста, добавьте ваш код, чтобы я понял больше.

Обновлено:

Вы отправляете токен в запросе, и именно это вызывает у вас проблему.

LinkedIn не принимает заголовок Authentication и ожидает параметр запроса: oauth2_access_token .

Ваши заголовки должны выглядеть следующим образом:

{
    "oauth2_access_token": "Your_token_here"
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...