Kontext: Ich habe eine Django App geschrieben, die ich jetzt in Elastic Beanstalk (AWS) bereitgestellt habe.Benutzerdefinierte Header fehlen in Anfragen an Django
In der lokalen Entwicklung habe ich eine benutzerdefinierte Anfrage Header SESSION_TOKEN
, die ich dann mit request.META.get('HTTP_SESSION_TOKEN')
zugreifen kann. In der Produktion sehe ich Fehler, weil dieser Header nicht erreichbar ist (aka fehlt er einfach in allen Anfragen, die mein Django-Server sieht).
Zusätzlich funktionieren meine anderen Standard-Header, es ist nur der benutzerdefinierte Header, der fehlt. Hinweis: Ich setze keine HTTP_AUTHORIZATION
, dies ist nicht das gleiche Problem wie Authorization header missing in django rest_framework, is apache to blame?.
Was läuft falsch? Wie kann ich auf benutzerdefinierte Header in meinem Backend in der Produktion zugreifen?
Das Setzen des Headers in meinen Anfragen an 'Session-Token' und das Auslesen als' HTTP_SESSION_TOKEN' löste das Problem. Vielen Dank! – owencm
aus irgendeinem Grund verwenden Sie nicht Standard-Django-Session-App, die ein Cookie anstelle von Kopfzeilen verwendet, um Sitzungs-ID herum zu übergeben. Das scheint sicherer zu sein, da Sie angeben können, das Cookie nur in sicheren Verbindungen zu verwenden (nicht 100% ig, aber zumindest etwas) – miki725
Ursprünglich verwendete ich Django als API-Backend für eine native App, also war dies offensichtlich etwas zu tun. Ich habe seitdem einen Webclient erstellt, war aber besorgt über CSRF-Probleme mit Cookies und mein aktueller Ansatz funktionierte gut, also behielt ich ihn :) – owencm