Frage

Ich mache eine interne API mit Tastypie. Ich habe

from tastypie.authentication import ApiKeyAuthentication
class MyResource(ModelResource):
  Meta:
    authentication = ApiKeyAuthentication()

Bei deaktivierten Auth -Regeln funktioniert meine API großartig. Damit bekomme ich eine 401 (nicht autorisierte) Antwort, egal was ich versuche.

Ich bin mir sicher, dass dies eines dieser Dinge ist, die wirklich offensichtlich sind, wenn Sie es in Aktion gesehen haben, aber in der Zwischenzeit raten Sie bitte mit, wie Sie die Anfrage stellen sollen (A Get).

War es hilfreich?

Lösung

Fügen Sie die Parameter Benutzername und API_Key zu Ihren GET -Variablen hinzu. Stellen Sie sicher, dass Sie das haben

curl http://localhost:8000/api/v1/books/?username=issackelly\&api_key=123456789adfljafal

Befolgen Sie die anderen Anweisungen von TEH -Dokumenten beim Einrichten:

ApikeyAuthentication

Als Alternative zum Erfordernis sensibler Daten wie einem Kennwort ermöglicht das ApikeyAuthentication, nur Benutzername und einen maschinengenerierten API-Schlüssel zu sammeln. Tastypie wird nur für diesen Zweck mit einem speziellen Modell geliefert, sodass Sie sicherstellen müssen, dass Tastypie in installed_apps ist.

Tastypie enthält eine Signalfunktion, mit der Sie Apikey-Objekte automatisch schafft werden können. Das Haken aussieht wie:

from django.contrib.auth.models import User
from django.db import models
from tastypie.models import create_api_key

models.signals.post_save.connect(create_api_key, sender=User)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top