На этом процедура авторизации закончена. Дальнейшая обработка данных зависит от потребностей вашего приложения.
Вы можете выдать пользователю форму для довведения дополнительных данных или сразу произвести его регистрацию
в своей системе и дальнейшую авторизацию.
Возможные ошибки
================
Так или инчае, но реализовать oAuth авторизацию с первого раза получается далеко не у всех. Самым важным является правильно
понять причину и исправить её. Ниже приведены стандартные и предусмотренные сообщения, которые вы можете получить в случае
неправильной передачи данных на сервер или нестандартных действий пользователя.
Тем не менее, если вы получили ошибку, неописанную в этой документации, пожалуйста, сообщите мне о ней в
`форму обратной связи <http://ely.by/site/contact>`_.
.._auth-start:
Ошибки при инициализации авторизации
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.._auth-start-fields:
Поля
""""
Ошибка с текстом:
..code-block:: text
The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. Check the "redirect_uri" parameter.
Означает то, что вы забыли передать в параметрах то или иное значение.
Необходимое значение указано во 2 предложении.
Чтобы решить эту проблему вам нужно просто добавить поле и его значение в передаваемые параметры.
Клиент
""""""
Если же вы встретили следующую проблему:
..code-block:: text
Client authentication failed.
Это означает, что переданные параметры не соответствуют ни одному зарегистрированному приложению.
Проверьте ваши значения code и redirect_uri, а лучше используйте уже сгенерированную ссылку на странице информации о приложении.
.._auth-finish:
Ошибки во время завершения авторизации
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
После того, как пользователь пройдёт авторизацию на Ely, ему будет предоставлен список разрешений, касающихся вашего приложения.
Если пользователь разрешит доступ, то всё пройдёт как описано в документации выше, но если же он нажмёт на кнопку "Отказать",
то он будет перенаправлен на ваш redirect_uri, но с другими GET параметрами:
То есть в вашем обработчике по пути redirect_uri вам необходимо обработать состояние, когда нет параметра code, но есть error
и вывести пользователю какое-либо сообщение о том, что пользователь не дал доступа к своим данным - вы не дадите доступа к своему сервису :_:
.._access-token:
Ошибки во время обмена токенов
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Поскольку обмен кода на токен доступа происходит через отправку POST запроса, данные передаются обратно в формате JSON.
Поэтому опознать сообщение об ошибке можно по наличию поля **error** в ответе от сервера.
В случае возникновения ошибки вы получите 2 поля:
..code-block:: javascript
{
"error": "invalid_request",
"error_description": "bla bla bla bla"
}
В поле **error** находится системное описание ошибки, оно указано в скобках у разделов ниже. В поле **error_description**
находится описание ошибки на английском языке. Содержание достаточно для самостоятельного решения проблемы, но в случае непонятности
той или иной ошибки, внизу привидён список возможных ошибок с пояснениями на русском языке.
Поля (invalid_request)
""""""""""""""""""""""
Смотрите "Ошибки при инициализации авторизации - :ref:`auth-start-fields`".
Неподдерживаемый Grant (unsupported_grant_type)
"""""""""""""""""""""""""""""""""""""""""""""""
Если вы встретили эту ошибку, то это значит, что вы попытались произвести авторизацию по неизвестному для нашего oAuth сервера типу Grant.
На данный момент Ely поддерживает только grant **authorization_code**, поэтому использование любого другого значения привидёт к этой ошибке.
Клиент (invalid_client)
"""""""""""""""""""""""
Эта ошибка возникает в случае, когда трио значений **client_id**, **client_secret** и **redirect_uri** не совпали
ни с одним из зарегистрированных приложений. Перепроверьте ваши значения.
Ошибка доступа (invalid_grant)
""""""""""""""""""""""""""""""
Эта ошибка встречается в том случае, если переданный **code** не соответствует вашим **client_id** и **redirect_uri**.
Возможно, вы неправильно обработали полученные данные или на нашем сервере были сброшены коды авторизации по каким-либо техническим причинам (маловероятно).
Неизвестная ошибка (undefined_error)
""""""""""""""""""""""""""""""""""""
Код на сервере никогда не будет идеален и может случится так, что виноват буду я, а не вы. Если вы стабильно получаете эту ошибку,
то, пожалуйста, сообщите мне об этом в `форму обратной связи <http://ely.by/site/contact>`_, чтобы я мог оперативно всё исправить.