TokenAuthentication'ı kurmak için DRF belgelerini takip ediyorum ve göz atılabilir API ile çalışmasını sağlayamıyorum.Django REST Framework: Browserable API ile TokenAuthentication'ı kullanma
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
INSTALLED_APPS = (
...
'rest_framework',
'rest_framework.authtoken',
...
yanı dokümanlardan kod parçası ile mevcut kullanıcılar için oluşturulan jeton olarak: Ben settings.py
düzgün çizgiler ekledim inanıyoruz. authtoken_token
tablosunu sorguladığımda her kullanıcı için jeton görebiliyorum, böylece var olduklarını biliyorum.
HTTP 401 Unauthorized
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
WWW-Authenticate: Token
{
"detail": "Authentication credentials were not provided."
}
Yani Token kimlik teşebbüs gibi görünüyor, ama bu ileti biraz garip: Ben göz atılabilir API giriş yapmaya
her şey, ben aşağıdaki içerik geri verilmesinde. Yanlış bir şifre girdiğimde, giriş formunda 'doğru şifre gir' mesajını alıyorum. Doğru şifreyi girdiğimde, giriş yapılıyormuş gibi görünüyor, ancak yukarıdaki iletiyle birlikte API köküne geçiyor ve kullanıcı adından ziyade üst menüde "Giriş Yap" ı görüntülüyor.
Bu, bir şekilde özel kullanıcı modelimle ilgili olabilir mi? Ya da, şu anda en iyi uygulama ya da aslında gerekli olup olmadığından emin olmasam da, DRT belgelerinin HTTPS'ye TokenAuthentication ile gereksinim duyduğunu söyleyen DHP desteklemeyen dev sunucusuyla geliştirdiğim gerçeğinden kaynaklanabilir .
ben tahmin cevaplar teşekkür ederim ki-! – dkhaupt
Bu yetkiyi eklerseniz, sunucumda istekte bulunan herkesin yalnızca kullanıcı adı ve parola ile erişeceği anlamına gelmez (belirteç olmadan), öyle değil mi? Sadece tahmin ettiğim web siteleri için çalışıyor, ama emin olmak istedim. –
'Rest_framework.authentication.BasicAuthentication' bile amaca hizmet eder. Bunu tercih ederim çünkü ideal olarak SessionAuthentication sadece sunucu ve istemciniz django şablonları gibi aynı bağlamda çalıştığında kullanılmalıdır. @KutayDemireren - kullanıcı adı/parola ve uygun izni olan herkes API'lere erişebilir. Ancak, size API son noktasını yayınlamak için hazır değilsiniz. –