Difference between revisions of "OAuth2"
(→Общая схема работы) |
|||
Line 1: | Line 1: | ||
− | Протокол OAuth2 позволяет сторонним сайтам получить ограниченный доступ к персональным данным пользователя Ace Stream, таким как e-mail и | + | Протокол OAuth2 позволяет сторонним сайтам получить ограниченный доступ к персональным данным пользователя Ace Stream, таким как e-mail и ключ пользователя. |
==Что нужно для работы с Ace Stream OAuth2== | ==Что нужно для работы с Ace Stream OAuth2== | ||
− | Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать | + | Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать приложения. Приложением может быть сайт, через которые осуществляется продажа опций пользователям. Каждое приложение получает доступ к OAuth2. |
==Общая схема работы== | ==Общая схема работы== | ||
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда: | Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда: | ||
− | <nowiki>https://accounts.acestream.net/oauth/v2/auth?client_id=[ | + | <nowiki>https://accounts.acestream.net/oauth/v2/auth?client_id=[APP_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email</nowiki> |
В ссылку подставляются следующие параметры: | В ссылку подставляются следующие параметры: | ||
− | * '''[ | + | * '''[APP_ID]''' - идентификатор приложения (его можно узнать [https://user1.acestream.net/reseller/applications здесь]) |
− | * '''[REDIRECT_URI]''' - ссылка, на | + | * '''[REDIRECT_URI]''' - ссылка, на которую будет перенаправлен пользователь после успешной авторизации. Данная ссылка должна быть в списке Redirect URI в настройках OAuth вашего приложения (для просмотра настроек OAuth приложения нужно нажать кнопку OAuth в списке приложений [https://user1.acestream.net/reseller/applications здесь]) |
После перехода по данной ссылке пользователь проходит авторизацию в системе Ace Stream, после чего перенаправляется на указанный [REDIRECT_URI]. | После перехода по данной ссылке пользователь проходит авторизацию в системе Ace Stream, после чего перенаправляется на указанный [REDIRECT_URI]. | ||
− | Если во время авторизации произошла ошибка, то на [REDIRECT_URI] передаются параметры error error_description, описывающие ошибку. | + | Если во время авторизации произошла ошибка, то на [REDIRECT_URI] передаются параметры error и error_description, описывающие ошибку. |
После успешной авторизации передается параметр <tt>code</tt>: это код подтверждения (authorization code) для получения токена доступа (access_token). | После успешной авторизации передается параметр <tt>code</tt>: это код подтверждения (authorization code) для получения токена доступа (access_token). | ||
После получения кода сторонний сайт дожен получить <tt>access_token</tt>. Для этого на адрес <nowiki>https://accounts.acestream.net/oauth/v2/token</nowiki> отправляется POST-запрос с такими переменными: | После получения кода сторонний сайт дожен получить <tt>access_token</tt>. Для этого на адрес <nowiki>https://accounts.acestream.net/oauth/v2/token</nowiki> отправляется POST-запрос с такими переменными: | ||
− | * '''client_id''' - идентификатор | + | * '''client_id''' - идентификатор приложения (APP_ID) |
− | * '''client_secret''' - секретный ключ | + | * '''client_secret''' - секретный ключ приложения (OAuth Secret, можно узнать в настройках OAuth приложения) |
* '''code''' - код подтверждения, полученный ранее | * '''code''' - код подтверждения, полученный ранее | ||
* '''grant_type''' - строка "authorization_code" | * '''grant_type''' - строка "authorization_code" | ||
Line 31: | Line 31: | ||
В случае успешного выполнения в ответе высылается токен доступа в поле <tt>access_token</tt> | В случае успешного выполнения в ответе высылается токен доступа в поле <tt>access_token</tt> | ||
− | С помощью токена доступа сторонний сайт имеет возможность получить e-mail и | + | С помощью токена доступа сторонний сайт имеет возможность получить e-mail и ключ пользователя. Для этого отправляется GET-запрос на адрес <nowiki>https://accounts.acestream.net/oauth/api</nowiki> с такими параметрами: |
* '''method''' - строка "getUserInfo" | * '''method''' - строка "getUserInfo" | ||
* '''access_token''' - полученный ранее токен доступа | * '''access_token''' - полученный ранее токен доступа |
Latest revision as of 10:53, 27 November 2015
Протокол OAuth2 позволяет сторонним сайтам получить ограниченный доступ к персональным данным пользователя Ace Stream, таким как e-mail и ключ пользователя.
Что нужно для работы с Ace Stream OAuth2
Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать приложения. Приложением может быть сайт, через которые осуществляется продажа опций пользователям. Каждое приложение получает доступ к OAuth2.
Общая схема работы
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда:
https://accounts.acestream.net/oauth/v2/auth?client_id=[APP_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email
В ссылку подставляются следующие параметры:
- [APP_ID] - идентификатор приложения (его можно узнать здесь)
- [REDIRECT_URI] - ссылка, на которую будет перенаправлен пользователь после успешной авторизации. Данная ссылка должна быть в списке Redirect URI в настройках OAuth вашего приложения (для просмотра настроек OAuth приложения нужно нажать кнопку OAuth в списке приложений здесь)
После перехода по данной ссылке пользователь проходит авторизацию в системе Ace Stream, после чего перенаправляется на указанный [REDIRECT_URI].
Если во время авторизации произошла ошибка, то на [REDIRECT_URI] передаются параметры error и error_description, описывающие ошибку.
После успешной авторизации передается параметр code: это код подтверждения (authorization code) для получения токена доступа (access_token).
После получения кода сторонний сайт дожен получить access_token. Для этого на адрес https://accounts.acestream.net/oauth/v2/token отправляется POST-запрос с такими переменными:
- client_id - идентификатор приложения (APP_ID)
- client_secret - секретный ключ приложения (OAuth Secret, можно узнать в настройках OAuth приложения)
- code - код подтверждения, полученный ранее
- grant_type - строка "authorization_code"
- redirect_uri - ссылка, указанная в первом запросе
Ответ на данный запрос отправляется в формате JSON.
В случае ошибки в ответе присутствует поле error_description с описанием ошибки.
В случае успешного выполнения в ответе высылается токен доступа в поле access_token
С помощью токена доступа сторонний сайт имеет возможность получить e-mail и ключ пользователя. Для этого отправляется GET-запрос на адрес https://accounts.acestream.net/oauth/api с такими параметрами:
- method - строка "getUserInfo"
- access_token - полученный ранее токен доступа
В случае успешного выполнения данного запроса в ответ отправляются данные пользователя в формате JSON:
{ "user": { "email": "USER_EMAIL", "key": "USER_KEY" } }