Django: limite de vista API saída para conter apenas dados de usuário autenticado OAuth?

votos
0

Meu aplicativo requer o consentimento do usuário para utilizar os dados da atividade de sua conta Strava (Strava é um serviço social para os atletas).

Strava usa fluxo OAuth para isso, então o usuário faz login para strava, dá o seu consentimento, e strava redireciona para um URL predefinido com código adicionado para consultar cadeia que pode ser então trocado por token de acesso através de outro pedido:

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

Eu quero meu outro app - rodando em outro servidor - para obter dados de usuário somente autenticado via API.

No entanto, eu não sei como para limitar a saída da API para conter apenas os dados do usuário autenticado no momento.

Atualmente minha opinião API consulta todos os dados (atividades), independentemente do usuário:

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

Eu sei que poderia limitar o queryset para registrada apenas no usuário se eu tivesse o registro do usuário em meu aplicativo, mas eu preferiria não ter outro registro que o usuário já tem para fazer login no Strava.

Como eu iria limitar a querysetincluir apenas actualmente OAuth autenticado usuário? Usaria de python-social-authcom Strava backend ser de alguma ajuda aqui?

Publicado 27/11/2018 em 18:04
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more