Korzystanie z django-rest-framework. Otrzymuję błędy HTTP 403 podczas uruchamiania w produkcji za Nginx. Kiedy zadzwonić konkretny pogląd, który dziedziczy APIView wspierać operację GET, otrzymuję:Django reszta ramy daje 403, gdy za nginx, ale nie bezpośrednio
{"detail": "Invalid username/password"}
Ale ... ja tylko dostać to w przeglądarce. Nie rozumiem, kiedy używam curl dla tego samego adresu URL. Dostaję ten błąd, niezależnie od tego, czy kliknę URL bezpośrednio, czy załaduję adres URL za pośrednictwem AJAX, zarówno w przeglądarce Chrome, jak i Firefox.
Nie otrzymam błędu, jeśli najpierw zaloguję się przez administratora Django z kontem administratora.
Ponadto, mam tylko to, że uruchamiam zza nginx. Jeśli uruchomię serwer Django lub gunicorn i trafiam bezpośrednio w port, nic mi nie będzie i z przyjemnością trafię anonimowo w adres URL. Jeśli następnie ustawię nginx przed tym, aby przekazać ten sam gunicorn/runserver, otrzymam ten błąd.
Może to ma coś wspólnego z ustawieniami mojego proxy nginx?
location/{
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Używam django rest framework 2.2.6, Django 1.5 i nginx 1.2.7.
Ustawiam dławienie na głupią, wysoką liczbę w ramach reszty i przyjrzałem się uprawnieniom, które domyślnie były domyślnie otwarte (ale tak samo jawnie ustawione).
Czy ktoś może wskazać mi właściwy kierunek?
Dzięki!
Ludo.
jakie są twoje ustawienia uwierzytelniania dla Django-Rest-Framework? – iMom0
Używam tylko wartości domyślnych, które wyglądały na odpowiednie. – Ludo