379
edits
Changes
OAuth2
,Новая страница: «Протокол OAuth2 позволяет сторонним сайтам получить ограниченный доступ к персональным дан…»
Протокол OAuth2 позволяет сторонним сайтам получить ограниченный доступ к персональным данным пользователя Ace Stream, таким как e-mail и публичный ключ пользователя.
==Что нужно для работы с Ace Stream OAuth2==
Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать маркеты - как правило, это сайты, через которые осуществляется продажа опций пользователям. Каждый маркет получает доступ к OAuth2
==Общая схема работы==
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда:
<nowiki>https://www.acestream.net/oauth/v2/auth?client_id=[CLIENT_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email</nowiki>
В ссылку подставляются следующие параметры:
* '''[CLIENT_ID]''' - идентификатор маркета, который реселлер может узнать в настройках своего маркета
* '''[REDIRECT_URI]''' - ссылка, на который будет перенаправлен пользователь после успешной авторизации. Данная ссылка должна быть в списке Redirect URI в настройках маркета
После перехода по данной ссылке пользователь проходит авторизацию в системе Ace Stream, после чего перенаправляется на указанный [REDIRECT_URI].
Если во время авторизации произошла ошибка, то на [REDIRECT_URI] передаются параметры error error_description, описывающие ошибку.
После успешной авторизации передается параметр <tt>code</tt>: это код подтверждения (authorization code) для получения токена доступа (access_token).
После получения кода сторонний сайт дожен получить <tt>access_token</tt>. Для этого на адрес <nowiki>https://www.acestream.net/oauth/v2/token</nowiki> отправляется POST-запрос с такими переменными:
* '''client_id''' - идентификатор маркета
* '''client_secret''' - секретный ключ маркета (можно узнать в настйроках маркета)
* '''code''' - код подтверждения, полученный ранее
* '''grant_type''' - строка "authorization_code"
* '''redirect_uri''' - ссылка, указанная в первом запросе
Ответ на данный запрос отправляется в формате JSON.
В случае ошибки в ответе присутствует поле <tt>error_description</tt> с описанием ошибки.
В случае успешного выполнения в ответе высылается токен доступа в поле <tt>access_token</tt>
С помощью токена доступа сторонний сайт имеет возможность получить e-mail и публичный ключ пользователя. Для этого отправляется GET-запрос на адрес <nowiki>https://www.acestream.net/oauth/api</nowiki> с такими параметрами:
* '''method''' - строка "getUserInfo"
* '''access_token''' - полученный ранее токен доступа
В случае успешного выполнения данного запроса в ответ отправляются данные пользователя в формате JSON:
<nowiki>{
"user": {
"email": "USER_EMAIL",
"key": "USER_KEY"
}
}</nowiki>
==Что нужно для работы с Ace Stream OAuth2==
Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать маркеты - как правило, это сайты, через которые осуществляется продажа опций пользователям. Каждый маркет получает доступ к OAuth2
==Общая схема работы==
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда:
<nowiki>https://www.acestream.net/oauth/v2/auth?client_id=[CLIENT_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email</nowiki>
В ссылку подставляются следующие параметры:
* '''[CLIENT_ID]''' - идентификатор маркета, который реселлер может узнать в настройках своего маркета
* '''[REDIRECT_URI]''' - ссылка, на который будет перенаправлен пользователь после успешной авторизации. Данная ссылка должна быть в списке Redirect URI в настройках маркета
После перехода по данной ссылке пользователь проходит авторизацию в системе Ace Stream, после чего перенаправляется на указанный [REDIRECT_URI].
Если во время авторизации произошла ошибка, то на [REDIRECT_URI] передаются параметры error error_description, описывающие ошибку.
После успешной авторизации передается параметр <tt>code</tt>: это код подтверждения (authorization code) для получения токена доступа (access_token).
После получения кода сторонний сайт дожен получить <tt>access_token</tt>. Для этого на адрес <nowiki>https://www.acestream.net/oauth/v2/token</nowiki> отправляется POST-запрос с такими переменными:
* '''client_id''' - идентификатор маркета
* '''client_secret''' - секретный ключ маркета (можно узнать в настйроках маркета)
* '''code''' - код подтверждения, полученный ранее
* '''grant_type''' - строка "authorization_code"
* '''redirect_uri''' - ссылка, указанная в первом запросе
Ответ на данный запрос отправляется в формате JSON.
В случае ошибки в ответе присутствует поле <tt>error_description</tt> с описанием ошибки.
В случае успешного выполнения в ответе высылается токен доступа в поле <tt>access_token</tt>
С помощью токена доступа сторонний сайт имеет возможность получить e-mail и публичный ключ пользователя. Для этого отправляется GET-запрос на адрес <nowiki>https://www.acestream.net/oauth/api</nowiki> с такими параметрами:
* '''method''' - строка "getUserInfo"
* '''access_token''' - полученный ранее токен доступа
В случае успешного выполнения данного запроса в ответ отправляются данные пользователя в формате JSON:
<nowiki>{
"user": {
"email": "USER_EMAIL",
"key": "USER_KEY"
}
}</nowiki>