Авторизация Vimeo OAuth2

В настоящее время я работаю над приложением, которое необходимо интегрировать с Vimeo. Поэтому я адаптирую свой работающий клиент OAuth2, чтобы разрешить авторизацию в Vimeo, это новый бета-API.

Однако есть некоторые вещи, которые мне неясны, и документация немного расплывчата по иметь значение.

  1. Должен ли я авторизовать клиента перед аутентификацией?
  2. URL-адрес аутентификации пользователя — https://api.vimeo.com/oauth/authorize. Следует ли мне отправить запрос GET или POST на этот URL-адрес с требуемыми параметрами?
  3. Должен ли я отправлять базовый заголовок авторизации (Authorization : basic base64(client_id:client_secret) вместе с аутентификацией или это должен быть заголовок авторизации без аутентификации (Authorization : Bearer unauthenticated_access_token)?
  4. Должен ли я обрабатывать диалоговое окно аутентификации через UIWebView или через Safari?

Кроме того, я, кажется, получаю сообщение об ошибке: { "error": "An unknown error has occured. Please let us know!"} при обработке аутентификации через Safari. Кто-нибудь знает, что на самом деле пошло не так, или предлагает способ выяснить это? (Кажется, Vimeo улучшил отображение ошибок за одну ночь ;))

Фактическая ошибка, которую я получаю, заключается в том, что redirect_uri и client_id отсутствуют, но я достаточно уверен, что они предоставляются в теле запроса при выполнении POST или в параметрах при выполнении GET. Любые указатели?


person MrJre    schedule 03.04.2014    source источник
comment
Можете ли вы предоставить полный api.vimeo.com/oauth/authorize (со всеми токенами, подвергнутыми цензуре конечно), так что я могу помочь отладить вашу проблему redirect_uri и client_id?   -  person Dashron    schedule 05.04.2014


Ответы (1)


  1. Авторизация клиента не требуется для аутентификации пользователя. Авторизация клиента необходима только для выполнения запросов API без проверки подлинности.

  2. Вы не делаете запрос на api.vimeo.com/oauth/authorize, вы отправляете туда своего пользователя. Вы должны создать ссылку и разместить ее на странице, чтобы пользователь мог щелкнуть ее. Они сделают запрос GET к этой конечной точке, но это не должно происходить через ваш сервер.

  3. Поскольку ваш клиент делает запрос к /oauth/authorize, вы никак не можете определить заголовки. Вам нужно будет указать заголовок авторизации для /oauth/access_token, и это должно быть Authorization : basic base64(client_id:client_secret)

Вчера вечером мы исправили ошибку в нашем отчете об ошибках oauth: D. Извините за временное замешательство.

Без дополнительной информации я не могу ответить на ваше сообщение об ошибке. Я добавлю несколько комментариев, а затем обновлю этот ответ, добавив дополнительную информацию.

person Dashron    schedule 04.04.2014
comment
Привет, Дашрон, спасибо за ответ :) Оказывается, я сам немного ошибся в (2), я перепутал порядок вещей, так как перенаправлял авторизацию пользователю только тогда, когда я уже запросил код авторизации. Теперь работает отлично :) - person MrJre; 07.04.2014