Авторизация сайтов

Механизм авторизации на базе протокола OAuth 2.0 стандартный и отличается от авторизации сайтов в ВКонакте лишь некоторыми параметрами в запросе.
Отличия в отсутствии параметра scope для 1-го пункта и необходимости grant_type=authorization_code для 4-го пункта.

Процесс авторизации сайта состоит из 4-х шагов:

  1. Открытие окна браузера для аутентификации пользователя на сайте LiveLevel.
  2. Разрешение пользователем доступа к своим данным.
  3. Передача сайту значения code для получения ключа доступа.
  4. Получение сервером приложения ключа доступа access_token для доступа к API LiveLevel.


1. Открытие диалога авторизации OAuth

Для начала процесса авторизации необходимо создать окно браузера и открыть в нём диалог авторизации с параметром response_type = code по адресу:

http://livelevel.net/oauth/authorize?
 client_id=APP_ID&
 redirect_uri=REDIRECT_URI&
 response_type=code


APP_ID – идентификатор Вашего приложения;
REDIRECT_URI – адрес, на который будет передан code. Этот адрес должен находиться в пределах домена, указанного в настройках приложения.

Если пользователь не вошел на сайт, то в диалоговом окне ему будет предложено это сделать.


2. Разрешение прав доступа

После успешного входа на сайт пользователю будет предложено авторизовать приложение.


3. Получение code

После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу REDIRECT_URI, указанному при открытии диалога авторизации. При этом код для получения ключа доступа code будет передан в GET-параметре на указанный адрес:
 

http://REDIRECT_URI?code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a



Параметр code может быть использован в течение 1 часа для получения ключа доступа к API access_token с Вашего сервера.

В случае возникновения ошибки браузер пользователя будет перенаправлен с кодом и описанием ошибки.
Пример возвращаемой ошибки:
 

http://REDIRECT_URI?error=invalid_request&error_description=Invalid+display+parameter



4. Получение access_token


Для получения access_token необходимо выполнить запрос с Вашего сервера на URL http://livelevel.net/oauth/access_token с передачей параметра code и секретных данных приложения: client_id и client_secret. Секретный ключ приложения client_secret может быть получен в разделе редактирования приложения.
 

http://livelevel.net/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a&
grant_type=authorization_code&
redirect_uri=REDIRECT_URI


Обратите внимание, что REDIRECT_URI должен быть тот-же, что и в пункте 1.

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

Пример ответа сервера:

{"access_token":"533bacf01e11f55b536a565b57531ac114461ae8736d6506a3", "expires_in":43200}



В случае ошибки будут переданы параметры error и error_description.

{"error":"invalid_grant","error_description":"Code is expired."}



После успешной авторизации Вы можете осуществлять запросы к API.