• en
  • Language: ru
  • Documentation version: 0.1

Itembase

Itembase использует OAuth2 для аутентификации.

  • Зарегистрируйте новое приложение для Itembase API, и

  • Добавить itembase live backend и/или sandbox backend в AUTHENTICATION_BACKENDS:

    AUTHENTICATION_BACKENDS = (
      ...
      'social_core.backends.itembase.ItembaseOAuth2',
      'social_core.backends.itembase.ItembaseOAuth2Sandbox',
      ...
    )
    
  • заполните значения Client Id и Client Secret в настройках:

    SOCIAL_AUTH_ITEMBASE_KEY = ''
    SOCIAL_AUTH_ITEMBASE_SECRET = ''
    
    SOCIAL_AUTH_ITEMBASE_SANDBOX_KEY = ''
    SOCIAL_AUTH_ITEMBASE_SANDBOX_SECRET = ''
    
  • Дополнительные диапазоны могут быть определены с помощью:

    SOCIAL_AUTH_ITEMBASE_SCOPE = ['connection.transaction',
                                  'connection.product',
                                  'connection.profile',
                                  'connection.buyer']
    SOCIAL_AUTH_ITEMBASE_SANDBOX_SCOPE = SOCIAL_AUTH_ITEMBASE_SCOPE
    

Чтобы использовать данные из дополнительных диапазонов, необходимо выполнить дополнительный шаг активации, который отсутствует в обычном потоке OAuth. Для этого вы можете расширить свой конвейер и добавить функцию, которая отправляет пользователя на URL активации, предоставляемый Itembase. Метод для получения данных активации включен в бэкенд:

@partial
def activation(strategy, backend, response, *args, **kwargs):
    if backend.name.startswith("itembase"):

        if strategy.session_pop('itembase_activation_in_progress'):
            strategy.session_set('itembase_activated', True)

        if not strategy.session_get('itembase_activated'):
            activation_data = backend.activation_data(response)
            strategy.session_set('itembase_activation_in_progress', True)
            return HttpResponseRedirect(activation_data['activation_url'])