Difference between revisions of "OAuth2"

From Ace Stream Wiki
Jump to: navigation, search
(Общая схема работы)
 
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. Реселлеры имеют возможность создавать маркеты - как правило, это сайты, через которые осуществляется продажа опций пользователям. Каждый маркет получает доступ к OAuth2
+
Для того, чтобы получить возможность использовать Ace Stream OAuth2, необходимо зарегистрироваться как реселлер в системе Ace Stream. Реселлеры имеют возможность создавать приложения. Приложением может быть сайт, через которые осуществляется продажа опций пользователям. Каждое приложение получает доступ к OAuth2.
  
 
==Общая схема работы==
 
==Общая схема работы==
 
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда:
 
Реселлер размещает на своем сайте ссылку с названием вида "Войти через Ace Stream", которая ведет сюда:
  <nowiki>https://accounts.acestream.net/oauth/v2/auth?client_id=[CLIENT_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email</nowiki>
+
  <nowiki>https://accounts.acestream.net/oauth/v2/auth?client_id=[APP_ID]&response_type=code&redirect_uri=[REDIRECT_URI]&scope=userkey+email</nowiki>
  
 
В ссылку подставляются следующие параметры:
 
В ссылку подставляются следующие параметры:
* '''[CLIENT_ID]''' - идентификатор маркета, который реселлер может узнать в настройках своего маркета
+
* '''[APP_ID]''' - идентификатор приложения (его можно узнать [https://user1.acestream.net/reseller/applications здесь])
* '''[REDIRECT_URI]''' - ссылка, на который будет перенаправлен пользователь после успешной авторизации. Данная ссылка должна быть в списке 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 и публичный ключ пользователя. Для этого отправляется GET-запрос на адрес <nowiki>https://accounts.acestream.net/oauth/api</nowiki> с такими параметрами:
+
С помощью токена доступа сторонний сайт имеет возможность получить 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"
  }
}