Django Tastypie: Cómo autenticarse con la tecla API
Pregunta
Estoy haciendo una API interna con Tastypie. tengo
from tastypie.authentication import ApiKeyAuthentication
class MyResource(ModelResource):
Meta:
authentication = ApiKeyAuthentication()
Con las reglas de autores discapacitadas, mi API funciona muy bien. Con él, obtengo una respuesta 401 (no autorizada) sin importar lo que intente.
Estoy seguro de que esta es una de esas cosas que es realmente obvias una vez que lo has visto en acción, pero mientras tanto, por favor, avise cómo hacer la solicitud (una obtención).
Solución
Agregue los parámetros de nombre de usuario y api_key a sus variables GET. Asegúrese de tener el
curl http://localhost:8000/api/v1/books/?username=issackelly\&api_key=123456789adfljafal
Asegúrese de seguir las otras instrucciones de los documentos al configurarlo:
Apikeyautenticación
Como alternativa a requerir datos confidenciales como una contraseña, la apikeyAuthentication le permite recopilar solo nombre de usuario y una tecla API generada por la máquina. Tastypie se envía con un modelo especial solo para este propósito, por lo que deberá asegurarse de que Tastypie esté en Installed_Apps.
Tastypie incluye una función de señal que puede usar para crear automáticamente los objetos Apikey. Conacarlo parece:
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)