Wie kann ich wieder user-ID-token in Django?
Ich generate tokens using default view in Django:
url(r'^login/', rest_auth_views.obtain_auth_token),
Habe ich ein problem, weil meine front-end nicht weiß, was ist der derzeit angemeldete Benutzer-ID.
Sollte ich es zurückgeben mit token oder vielleicht einige andere Anfrage?
Ich weiß, dass es eine Menge von verschiedenen Möglichkeiten, aber ich möchte wählen Sie die optimale Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man überschreiben
rest_framework.authtoken.views.ObtainAuthToken.post
um das Ergebnis zu erhalten Sie wollen.myapp/views.py
myapp/urls.py
Beispiel-Ergebnisse
Die Idee hier ist, um das überschreiben der Methode post die ObtainAuthToken view-Klasse. Hier, ich habe alles getan ist, rufen Sie die übergeordnete Klasse, um den token, dann schauen Sie, dass token zu finden, die zugehörige Benutzer-id.
Hoffe, das hilft.
wenn Sie brauchen, um Benutzer-Informationen auf einer Webseite, müssen Sie die Benutzer-Informationen in einer Antwort der Login-API oder andere API.
Während der Verwendung von Token-basierte Authentifizierung nach login, access token und refresh token generiert werden, die gegeben werden, um client im login-API-Antwort. Dieses access-token muss weitergegeben werden in header:
Müssen Sie
authentication_classes = [OAuth2Authentication]
in Ihrem Blick.
Dadurch wird überprüft, die, wenn der Benutzer angemeldet ist, bekommst du auch Zugriff auf angemeldete Benutzer die Informationen mit der
user=request.user
.Ich denke, dass die gute Praxis sein wird, um Benutzer wieder details in der Antwort von login api.
Wenn Ihr eingebauten Blick nicht zurück Benutzer-details können Sie möglicherweise überschreiben der Methode post
obtain_auth_token
. Ich habe einmal diese für djangorestframework-jwt erhalten token-Methodestandardmäßig
response_data
dict hatte nurtoken
details, die ich Hinzugefügt Benutzer-Objekt als auch das zu erreichen, was Sie zu tun versuchen.