Django: ограничить вывод представления API только данными пользователя, прошедшего аутентификацию OAuth? - PullRequest
0 голосов
/ 27 ноября 2018

Мое приложение требует согласия пользователя на использование данных активности из его учетной записи Strava (Strava - социальный сервис для спортсменов).

Strava использует для этого поток OAuth, поэтому пользователь входит в Strava и дает свое согласие.и Strava перенаправляет на предопределенный URL-адрес с кодом, добавленным в строку запроса, которую затем можно обменять на токен доступа с помощью другого запроса:

def strava_redirects_to_this_view(request):
    #strava redirects to this view after authentication, with code in query string

    #get tokens
    code = request.GET.get('code', '') # extract code from redirect URL query string
    access_token = exchange_code_for_token(code) # custom function to make exchange request

Я хочу, чтобы мое другое приложение - запущенное на другом сервере - получало данныетолько аутентифицированный пользователь через API.

Однако я не знаю, как ограничить вывод API, чтобы он содержал только данные текущего аутентифицированного пользователя.

В настоящее время мой просмотр API запрашивает вседанные (действия), независимо от пользователя:

class ListActivitiesView(generics.ListAPIView):
    queryset = Activity.objects.all()
    serializer_class = ActivitySerializer

Я знаю, что мог бы ограничить набор запросов только зарегистрированным пользователем, если у меня есть регистрация пользователя в моем приложении, но я бы предпочел не иметь другой регистрации в качествепользователь уже должен войти в Strava.

Как бы я ограничил queryset включением только текущего пользователя, прошедшего аутентификацию OAuth?Может ли здесь помочь python-social-auth с бэкэндом Strava?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...