Ich habe andere Fragen zu SO (here, here und here) gesehen, aber ich bin mit keiner der Lösungen zufrieden, also frage ich es noch einmal. Ich starte eine Webanwendung, die OAuth von mehreren Anbietern (Google, Facebook, Twitter, Yahoo) zur Authentifizierung nutzt. Ich habe Schwierigkeiten, eine Konfiguration zu finden, die sowohl für eine lokale Entwicklungsumgebung als auch für eine Produktionsumgebung geeignet ist.Verwenden von OAuth für Entwicklungs- und Produktionsumgebungen
Die führenden Lösungen, die ich gefunden habe, sind mehrere Anwendungen innerhalb der einzelnen Anbieter registrieren, einen anderen Consumer-Key und Geheimnis für jede Aufnahme:
„My App Production“ - mit einem Rückruf URI http://www.myapp.com/callback
„My App-Entwicklung“ - mit einem Rückruf URI http://local.myapp.com/callback
einen Eintrag in Ihrem lokalen Host-Datei hinzufügen local.myapp.com
-127.0.0.1
und s-zu-Punkt ome Konfiguration für Ihre Anwendung, die richtigen Verbraucher Schlüssel basierend auf der Umgebung zu verwenden, und Sie sind gut zu gehen, nicht wahr?
Aber meine Anwendung ist responsive und ich muss meine Entwicklungsumgebung testen, die auf meinem PC von mehreren anderen Geräten wie meinem iPhone und iPad läuft, von denen keiner in der Lage sein wird, den Entwicklungsrückruf-URI zu lösen.
Nehmen wir an, ich habe bereits einen DNS-Server in meinem Netzwerk und bin in der Lage, den Eintrag für local.myapp.com
anstelle meiner lokalen Hosts-Datei hinzuzufügen und kann jetzt von jedem Gerät im Netzwerk auf meine Entwicklungsinstanz zugreifen.
Aber mein Entwicklungsteam arbeitet alle im selben lokalen Netzwerk. Jetzt zeigt local.myapp.com
auf die gleiche IP für alle. Lassen Sie uns zurückgehen, um die hosts-Datei auf dem Computer jedes Entwicklers so einzustellen, dass sie alle unabhängig von ihrer Workstation arbeiten können. Jetzt kann niemand mehr seine Entwicklungsinstanz von ihrem iPhone aus testen. Es scheint kaum die richtige Antwort für jeden Entwickler zu sein, eine Anwendung beim Provider zu registrieren, nur damit sie einen eindeutigen Callback-URI angeben können.
Normalerweise, wenn ich im Unkraut mit einer komplizierten Lösung für ein scheinbar einfaches Problem nach unten gehe, bedeutet es normalerweise, dass ich etwas grundsätzlich falsch mache. Fehle ich etwas an OAuth, soll es nicht so benutzt werden? Ich bin versucht, OAuth insgesamt zu verwerfen und einfach mit OpenID zu gehen (keine App-Registrierung erforderlich und kann den Callback-URI innerhalb der App angeben), aber dann verliere ich zwei der großen Jungs in Facebook und Twitter. Ich brauche wirklich keine der Daten des Benutzers, es ist nur ein nettes zu haben, wenn es verfügbar ist. Kann mich jemand zurück in OAuth sprechen?
nur zum testen richtig? Warum sollte nicht jede Web-App ein virtuelles Verzeichnis sein? – codemonkeh
Ich folge nicht wirklich, was Sie bekommen. Kannst du es ausarbeiten? – schmimd04
Haben Sie jemals eine Lösung gefunden? Ich kämpfe mit genau der gleichen Sache; Die oauth-Anbieter erlauben keine Wildcards im Ursprung, also kann ich nicht "alice.dev.myapp.com" und "bob.dev.myapp.com" haben, aber wenn alle Entwickler 'dev.myapp.com' teilen, dann tue ich es nicht Ich weiß nicht, wie man die Tablets und Telefone auf den richtigen Entwickler richtet. Das Erstellen eines OAuth-Einstiegspunkts pro Entwickler scheint der einzige Weg zu sein. – mczepiel