1

I Django 1.11 und Django rest framework 3.6.2 bin mit erstellt ich einen benutzerdefinierten Authentifizierungs-Backend:Django Rest - Benutzerdefinierte Authentifizierungs-Backend mit durchsuchbaren api

MyAuthBackend(rest_framework.authentication.BasicAuthentication): 
    # ... 

und hinzugefügt, um es in die settings.py Datei:

REST_FRAMEWORK = { 
    'DEFAULT_AUTHENTICATION_CLASSES' : ('path.to.MyAuthBackend',) 

} 

ich auch versucht, SessionAuthentication ohne Erfolg zu erweitern

Mein Problem ist, dass die Benutzer versuchen über die browsable api einloggen und es sieht so aus, als wäre das Authentifizierungs-Backend, das die durchsuchbare API verwendet, nicht das Standard-Backend.

Wo kann ich das ändern? Ich muss mein eigenes Auth-Backend in der browsable API verwenden, Danke.

Antwort

1

Ich glaube nicht, dass es möglich ist, BasicAuthentication in der browserfähigen API zu verwenden (ohne eine ganze Reihe seiner Interna zu ändern).

Betrachten Sie die SessionAuthentication neben Ihrem neuen zu halten, können Sie die Standardauthentifizierung in Ihrer Anwendung und Sitzungsauthentifizierung in dem durchsuchbaren api verwenden können:

'DEFAULT_AUTHENTICATION_CLASSES': (
    'path.to.MyAuthBackend', 
    'rest_framework.authentication.SessionAuthentication', 
), 
+0

ich einen dritten Dienst für die Authentifizierung bin mit mit verschiedener Datenbank-I 't benutze den Standard –

+0

Klingt so, als ob du SessionAuthentication erweitern musst, wo ist es dann für dich schief gelaufen? – Igonato

+0

Sieht so aus, als ob es zuerst aussieht, wenn ein Benutzer in der Datenbank existiert und dann die Authentifizierungsfunktion aufruft. Aber, meine Benutzerdatenbank ist leer, alle Benutzer sind in verschiedenen Diensten vorhanden. –

Verwandte Themen