Подтвердить что ты не робот

Django Tastypie: как аутентифицировать ключ API

Я делаю внутренний API с TastyPie. У меня

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

С отключенными правилами Auth мой API отлично работает. С его помощью я получаю ответ 401 (НЕСАНКЦИОНИРОВАННЫЙ) независимо от того, что я пробую.

Я уверен, что это одна из тех вещей, которая действительно очевидна, когда вы видите ее в действии, но тем временем, пожалуйста, сообщите, как сделать запрос (GET).

4b9b3361

Ответ 1

Добавьте параметры имени пользователя и api_key в переменные GET. Убедитесь, что у вас есть

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

Обязательно следуйте другим инструкциям из документации при настройке:

ApiKeyAuthentication

В качестве альтернативы требованию чувствительных данных, таких как пароль, ApiKeyAuthentication позволяет вам собирать только имя пользователя и машинный ключ api. Tastypie поставляется с специальной моделью только для этой цели, поэтому вам нужно убедиться, что тастипа находится в INSTALLED_APPS.

Tastypie включает функцию сигнала, которую вы можете использовать для автоматического создания объектов ApiKey. Подведение его выглядит следующим образом:

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)