Reddit¶
Reddit реализует OAuth2 authentication workflow. Чтобы включить его, просто следуйте инструкциям:
Зарегистрируйте заявку по адресу Reddit Preferences Apps
Заполните значения Consumer Key и Consumer Secret в настройках:
SOCIAL_AUTH_REDDIT_KEY = '' SOCIAL_AUTH_REDDIT_SECRET = ''
По умолчанию токен не является постоянным, он будет действовать в течение часа. Чтобы получить обновленный токен, просто определите:
SOCIAL_AUTH_REDDIT_AUTH_EXTRA_ARGUMENTS = {'duration': 'permanent'}
Это сохранит
refresh_token
в атрибутеUserSocialAuth.extra_data
, чтобы обновить маркер доступа, просто сделайте:from social_django.utils import load_strategy strategy = load_strategy(backend='reddit') user = User.objects.get(pk=foo) social = user.social_auth.filter(provider='reddit')[0] social.refresh_token(strategy=strategy, redirect_uri='http://localhost:8000/complete/reddit/')
Reddit требует
redirect_uri
при обновлении токена, и это должно быть то же значение, которое использовалось в процессе авторизации.