Ich verwende Django REST-Framework, um Daten in JSON verfügbar zu haben und mit ihnen die Seite über AJAX zu aktualisieren. Wie kann ich die URL sichern, auf der die Seite mit Daten aktualisiert wird und niemand auf die API-URL zugreifen kann? Die URL ist in AJAX in HTML sichtbar, so dass auf sie zugegriffen werden kann, aber ich möchte sie durch Token oder eine andere geeignete Authentifizierung verhindern, die nur darauf Zugriff hat.Wie man Token-Authentifizierung über AJAX in Django setzt, um die API-URL zu sichern
Die Adresse ist '/ api/Stück /' (siehe im AJAX Code)
serializers.py
from rest_framework import serializers
from .models import Item
class ItemModelSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = [
'title',
'value',
]
views.py (in API)
from rest_framework import generics
from .serializers import ItemModelSerializer
from .models import Item
class ItemListAPIView(generics.ListAPIView):
serializer_class = ItemModelSerializer
def get_queryset(self):
return Item.objects.all().order_by('sort')
URLs .py
urlpatterns = [
#...urls...
url(r'^api/item/', include('apps.item.api.urls', namespace='api-item')),
url(r'^admin/', admin.site.urls),
]
template - ajax
setInterval(function() {
$.ajax({
method: "GET",
url: "/api/item/",
success: function(data) {
$("#items tbody").empty();
$.each(data, function (key, value) {
var itemKey = key;
var itemTitle = value.title;
var itemValue = value.value;
$("#items tbody").append(
"<tr><td class='left'>" + itemTitle + "</td><td>" + itemValue</td></tr>"
)
})
},
error: function(data) {
console.log("error")
console.log(data)
}
})
}, 3000)
„Wenn Sie direkt Ihre API aufrufen, ohne Auth API möchten, müssen Sie jedoch solche Praktiken zu folgen, es ist unsicher zwischen Django und AJAX teilte eine hart codierte Token verwenden.“ - das ist genau mein Punkt - wie sichere GET-Anfragen in Django, AJAX, JS nur diese Website kann niemand sonst verwenden? – Radek