2017-01-06 4 views
1

Я использовал this guide для создания витрины - вход с LinkedIn в конкретный сайт. . Все работало отлично , пока я его организованы показы перед широкой аудиторией и сломалась :-(Это был большой провал, и я хочу знать, почему Вот что я делаю:LinkedIn, 401, Не удалось проверить токен доступа

1.На знак в странице пользователь может нажать кнопку Sign in with LinkedIn и перенаправляется на аналогичную ссылку:

https://www.linkedin.com/oauth/v2/authorization?redirect_uri=[my_callback]&client_id=[my_client_id]&response_type=code&state=[securely_random]&scope=r_basicprofile%20r_emailaddress 

2. пользователь позволяет приложение и отправляются обратно в my_callback

3.In my_callback Я делаю POST к https://www.linkedin.com/oauth/v2/accessToken я не чтобы получить токен доступа. Я использую код, отправленный LinkedIn, правильный идентификатор клиента и секрет. Все в порядке, например, ответ может быть:

{ 
    "access_token": [access_token], 
    "expires_in": 5184000 
} 

4.I делает аутентифицированных запросы для извлечения данных профиля из конечной точки https://www.linkedin.com/v1/people/~:(firstName,lastName,email_address)

заголовков:

x-li-format: json  
Authorization: Bearer [access_token] 

я начал иногда возникает ошибка 401, например:

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

кажется, что некоторые из запросов случайно прошли все-таки ...

Дополнительная информация:

  • В user регистрируется в LinkedIn
  • Пользователь является администратором приложения LinkedIn
  • У меня есть проверил ограничения (пределы дросселя) в приложении. Доступно по цене https://www.linkedin.com/developer/apps. Все, что можно увидеть, зеленое.
  • Я перепробовал все советы и хаки из этого question
  • Моего приложения не живет

Я озадачен!

Вопрос: Какую-либо очевидную ошибку?

Вопрос: Есть ли скрытые пределы дроссельной заслонки (или инструменты безопасности) для ограничения количества токенов доступа для конкретной комбинации пользователей/приложений? (Я всегда использую одного и того же пользователя, и я довольно агрессивно тестировал перед большим FAIL)

ОБНОВЛЕНИЕ: В течение следующих двух дней Вход в систему начал работать гладко, как описано выше. Нет 401-s больше ...: -X Я не внес изменений в базу кода. Так ли это какой-то предел дроссельной заслонки или просто LI был в плохом настроении в пятницу?

ответ

1

В случае, если кто-то любопытно, я получил ответ на мою проблему с поддержкой LI:

К сожалению, мы действительно не можем помочь с проблемами API и 3-сторонних приложений. Я предполагаю, что в пятницу была икота, и вы стали жертвой неудачного времени.

Я принимаю объяснение, что я был жертвой, так что это отвечает на мой вопрос ...

+3

Вы легко убеждены: D –

+0

Согласен, странно, что это отмечается как ответ. – Dennis

0

У меня есть доступ-маркер, который работал, чтобы получить данные через API, однако теперь он перестал работать. Я внимательно прочитал документацию LinkedIn: https://developer.linkedin.com/docs/oauth2 и придумал, почему это может случиться.

Документы заявляют, что сеанс пользователя связан с токеном доступа. Следовательно, выход из сеанса означает, что токен доступа недействителен. Это имеет смысл, потому что это именно то, что я вижу.

Oauth2 expired-at - это всего лишь отметка времени, в течение которого этот токен доступа будет действителен. Но в любой момент это может быть признано недействительным.

Другие реализации oauth2 показывают возможности обновления токена доступа, Linkedin не предоставляет такую ​​функцию. Поэтому пользователь должен обновлять его вручную каждый раз. Не уверен, что это по дизайну, или они еще не добрались до него. В целом их API выглядит довольно устаревшим.

Смежные вопросы