Ich versuche, ein Open-Auth-ähnliches System zu erstellen, wo der Benutzer sich über einen anderen in einer App anmelden kann.Django Server scheint nicht in der Lage zu sein, während der Anfrage zu antworten
Während dieses Vorgangs sendet meine App "authentication" heimlich ein Token an die App "client". Dann ruft die Client-App die Authentifizierungs-App an und fragt nach den Benutzerdetails, um zu überprüfen, ob sie sich geändert haben. Abschließend antwortet die Authentifizierungs-App mit den Benutzerdetails und der Benutzer wird zur Client-App umgeleitet und mit dem Token als Passwort angemeldet.
All dies scheint auf meiner lokalen Maschine gut zu funktionieren. Wenn sie jedoch auf meinen öffentlichen Server übertragen werden, gehen die Dinge schief.
Es sieht so aus, als ob die Authentifizierungsanwendung nicht nach Benutzerdetails gefragt werden kann, während sie immer noch auf eine Antwort von der Client-App wartet, die bestätigen soll, dass das Token festgelegt wurde.
Im Grunde wartet die Client-App darauf, dass die Authentifizierungsanwendung auf ihre Anforderung nach Details antwortet, was sie nie tut. Daher antwortet die Client-App niemals der Authentifizierungsanwendung, dass das Token erfolgreich eingerichtet wurde. Daher kann die Anfrage niemals erfolgreich sein. Dies ist der grobe Zeitplan
AUTH : Posts token to client, waits for 200 response
CLIENT : Receive token, asks for user details, waits for 200 response
AUTH : Still waiting for its 200 response, so doesn't answer client request. After a while, ends in a 504 gateway timeout error
Soll ich den Code ändern, so dass einige Anrufe asynchron gemacht werden? Oder identifiziere ich das Problem falsch?
Es kann möglicherweise sein, weil der Webserver Ihres Djangos im Einzelarbeiter läuft (Einzelprozess). Welchen Webserver benutzen Sie? Apache? Nginx? Hast du eine Möglichkeit, die Anzahl der Arbeiter für Django zu überprüfen und möglicherweise zu ändern? – Fian