TokenAuthentication
'u genişletmeyi başardım ve belirteçlerimi saklamak için istek oturumunu kullanırken bir çalışma modelim var, ancak Authorization
'u as described here bir üstbilgi parametresi olarak geçmeye çalıştığımda, Yanıtlarımın META değişkeni HTTP_AUTHORIZATION olmadan geri geldiğini fark ettim . Ben de bir başlık parametre olarak "Authorization2" geçirirseniz o istekte görünür olduğunu fark:Yetkilendirme üstbilgisi django rest_framework'da eksik, apache suçlanıyor mu?
{
'_content_type': '',
'accepted_media_type': 'application/json',
'_request': <WSGIRequest
path:/api/test_auth/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{
'MOD_AUTH_CAS_S': 'ba90237b5b6a15017f8ca1d5ef0b95c1',
'csrftoken': 'VswgfoOGHQmbWpCXksGUycj94XlwBwMh',
'sessionid': 'de1f3a8eee48730dd34f6b4d41caa210'
},
META:{
'DOCUMENT_ROOT': '/etc/apache2/htdocs',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTPS': '1',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_AUTHORIZATION2': 'Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4c',
...
Benim ilk tahminim yetkilendirme başlık apache tarafından kaldırıldığı durumda olduğunu, ve birkaç S okudum/O, temel yetkilendirme ve kimlik doğrulamasıyla eşleşmezse, apache'nin değeri atacağını belirten sorulara yanıt verir, ancak Yetkilendirme başlığının Django ve WSGIRequest'e 'geçiş yapmasına' nasıl izin verileceği konusunda hiçbir fikrim yoktur. Bu sorunu nasıl çözecek bilen var mı? bu bir şey değişirse
Ben de .. o soran sonra kendi soru dakika cevaplamak için üzgünüm
Bu apache davranışını belgelemek için bir açık bilet vardır: https://github.com/tomchristie/django-rest-framework/issues/488 Örneğin, örneğin, bir miktar ışık tutabilir. Bu konuda Nginx davranışı da yararlı olabilir. –
@Tom Christie, nginx ile bunu nasıl yapıyorsunuz: proxy_no_cache $ http_pragma $ http_authorization; proxy_cache_bypass $ http_pragma $ http_authorization; proxy_set_header HTTP_AUTHORIZATION $ http_authorization; –
@SalvatoreIovene Kazı yaparken etrafta birkaç not gördüm. Muhtemelen sadece Nginx'i bir proxy olarak kullanırken geçerlidir. (?) –