• en
  • Language: ru
  • Documentation version: 0.1

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 при обновлении токена, и это должно быть то же значение, которое использовалось в процессе авторизации.