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'])