2016-02-24 2 views
5

Ich baue eine App mit einem Django Backend, Angular Frontend und einer REST API mit Django REST Framework für Angular zu konsumieren. Als ich noch Backend-Sachen mit einem Vanilla-Frontend ausarbeitete, verwendete ich die mitgelieferte Django-Authentifizierung, um die Benutzerauthentifizierung zu übernehmen. Aber jetzt, da ich eine REST-basierte App erstelle, bin ich nicht sicher, wie ich mich der Authentifizierung nähern soll.Django, Angular, und DRF: Authentifizierung für Django Backend vs. API

Da alle Benutzerdaten entweder über die API abgerufen oder übermittelt werden, sollte die API-Authentifizierung ausreichen? Wenn ja, muss ich die vorhandene Django-Authentifizierungs-Middleware entfernen?

Gerade jetzt, wenn ich versuche, API-Endpunkte in einer frühen Version der App zu treffen, werde ich zu etwas geleitet, das wie das normale Django-Login-Formular aussieht. Wenn ich einen gültigen Benutzernamen und ein Passwort eingabe, funktioniert es nicht - nur zur erneuten Anmeldung aufgefordert. Würde das Entfernen der grundlegenden Django-Authentifizierung das verhindern? Ich möchte zur Anmeldung aufgefordert werden, bin mir aber nicht sicher, wie ich das mit diesen Technologien handhaben soll.

Das Paket django-rest-auth scheint nützlich, und die gleiche Gruppe macht ein Angular-Modul - aber die Dokumente gehen nicht viel nach der Installation und den bereitgestellten Endpunkten. Letztendlich denke ich, der Kern dieser Frage ist: Wie wechsle ich die Authentisierung vollständig von der von Django bereitgestellten Komponente zu etwas wie django-rest-auth oder einem der anderen von DRF empfohlenen Drittanbieter-Pakete?

bearbeiten: Ich machte diesen Kommentar unten, aber ich erkannte, dass ich herausfinden muss, wie kombinierte Auth funktionieren wird. Ich baue keine App mit einer einzelnen Seite, also werden einzelne grundlegende Seiten von Django geliefert, aber jede Seite trifft verschiedene API-Endpunkte, um die benötigten Daten zu erhalten. Gibt es eine Möglichkeit, etwas wie Django-Rest-Auth behandeln alle Authentifizierung?

+0

Gibt es ein Code-Repository, das Sie anzeigen können? Django-Rest-Auth ist ziemlich Plug-and-Play und sollte leicht für Ihren Anwendungsfall arbeiten. –

+0

Ich kann Code zu der Frage hinzufügen, wenn ich nach Hause komme, aber was wäre am nützlichsten zu zeigen? Ich habe mit django-rest-auth herumgespielt - es war einfach zu installieren, mir ist nur unklar, wie man andere Authentifizierungen entfernt und nur seine Endpunkte benutzt. – dkhaupt

+0

Eigentlich entschied ich, dass ich nicht mit einer einzelnen Seite App-Implementierung gehen werde. Einzelne Seiten treffen verschiedene Endpunkte und sind reaktionsschnell, aber einige Seitenübergänge müssen erneut geladen werden. Das bedeutet, dass ich effektiv beide Arten der Authentifizierung verwenden muss, richtig? Vielleicht muss ich diese Frage noch einmal bearbeiten oder einfach nochmal genauer fragen. – dkhaupt

Antwort

0

Zu jedem, der auf diese Frage stolpert, konnte ich nicht herausfinden, wie man den hybriden Ansatz arbeiten lässt. Django-Serve-Seiten, die jeweils API-Aufrufe enthielten, schienen in Ordnung zu sein, aber ich habe nie irgendwelche Anfragen an die API gesehen - ich glaube aufgrund einiger anderer Sicherheitsprobleme. Ich bin mir sicher, dass es möglich ist, aber ich entschied mich schließlich für die Single-Page-App-Implementierung, um die Dinge einfacher zu machen.