Django Tastypie: Как аутентифицировать с помощью API -ключа

StackOverflow https://stackoverflow.com/questions/7814128

  •  26-10-2019
  •  | 
  •  

Вопрос

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

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

С отключенными правилами AUTH мой API отлично работает. С ним я получаю 401 (несанкционированный) ответ, независимо от того, что я пытаюсь.

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

Это было полезно?

Решение

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

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

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

Apikeyauthentication

В качестве альтернативы требованию конфиденциальных данных, таких как пароль, Apikeyauthentication позволяет собирать только имя пользователя и клавишу API, сгенерированного машиной. Tastypie поставляется со специальной моделью только для этой цели, поэтому вам нужно убедиться, что TastyPie находится в stemed_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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top