2013-07-15 18 views
6

Geçerli kullanıcımı, geri kalan api'nin tarayıcı modundan kapatamıyorum.Oturum kapatılıyor

Bu şimdiye oturumları kullanılan çünkü

REST_FRAMEWORK = { 
       'PAGINATE_BY': 10, 
       'DEFAULT_AUTHENTICATION_CLASSES': ( 
         'rest_framework.authentication.BasicAuthentication', 
         'rest_framework.authentication.SessionAuthentication', 
         'rest_framework.authentication.TokenAuthentication', 
               ), 
        'DEFAULT_PERMISSION_CLASSES': ( 
         'rest_framework.permissions.IsAuthenticated', 
            ), 
       } 

bunu mi ayarlarım mı? Pls yardımcı olur.

İstek ve yanıt başlıkları:

Request URL:`http://localhost:8000/api/api-auth/logout/?next=/api/city/` 
Request Method:GET 
Status Code:302 FOUND 
Request Headers: 
--------------- 
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Connection:keep-alive 
Cookie:sessionid=j7qebcdjdwzwqlmep4eyq3svuial43uv; csrftoken=vK3Ghn3QFVbCe3nKx1LDZBTzM7sRiDym 
Host:127.0.0.1:8000 
Referer:`http://localhost:8000/api/city/` 
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36 
Query String Parametersview sourceview URL encoded 
next:/api/city/ 
Response Headers 
---------------- 
Content-Type:text/html; charset=utf-8 
Date:Mon, 15 Jul 2013 20:46:35 GMT 
Location:`http://localhost:8000/api/city/` 
Server:WSGIServer/0.1 Python/2.7.4 
Set-Cookie:sessionid=b1x24z93dqu384lqirtv5r9npy16s0qx; expires=Mon, 29-Jul-2013 20:46:35 GMT; httponly; Max-Age=1209600; Path=/ 
Vary:Cookie 

cevap

12

It çözüldü! BasicAuthentication etkin olduğundan dolayıydı. Ben tarayıcıda HTTP giriş yoluyla giriş yaptım ve oturumu kapatmak için görünmüyor. BasicAuthentication kaldırıldı ve her şey şimdi iyi çalışıyor gibi görünüyor.

+0

BasicAuthentication yorumlama ile: – Punit

2

Aslında çıkış çalışıyor fakat logout sonunda Temel Kimlik isteği auth tekrar önbelleğe HTTP kimlik başlık bilgilerini kullanarak (İznimizin IsAuthenticated kullandıkları için, kimlik doğrulama gerektiren bir görünüme) yönlendirme sırasında:

auth = request.META.get('HTTP_AUTHORIZATION', b'') 

OP'nin dediği gibi, BasicAuth'ı devre dışı bırakabilir ve yalnızca SessionAuth kullanabiliriz. Ancak, bazen GUI olmadan API'ye erişmemiz gerekebilir, bunun yerine TokenAuth kullanabiliriz. BasicAuth/TokenAuth zaten çok güvenli olmadığından (https://tools.ietf.org/html/rfc2617), OAuth2 veya diğer daha güvenli kimlik doğrulama yöntemlerini kullanmamız daha iyi olabilir. Yine de taleplere bağlı. Ben APIView geri açıldığında ben hala alamıyorum, eşdeğer ilaç kullanıyordum olduğunca uzun iyi çalıştı

'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.SessionAuthentication', 
    'rest_framework.authentication.BasicAuthentication', 
    'rest_framework.authentication.TokenAuthentication', 
), 
1

Bugün bu sorunla karşılaştı ve aşağıdaki emrini değiştirerek çözmüş çıkış yapmak
İlgili konular