Ich benutze eine Rails-Api mit Devise-Edelstein, um auf Facebook einloggen. Wenn ich einen Link von einem HTML unter der Rails-App direkt zum Anmelden verwende. Es funktioniert perfekt. Nun, wenn ich versuche, mit angular2 zu einem Client zu bewegen und die gleiche Route in der App rails aufzurufen. Das Problem tritt in der Umleitung zu Facebook auf. Ich kann die Route treffen, weil ich bereits "Cors Rack Gem" eingerichtet habe, aber wenn hinter der Szene "Devise Gem" die Facebook API anruft, ist der Ursprung für diesen Call null. Ich habe keinen Weg gefunden, es nach 3h Suche funktionieren zu lassen.Angular2 vs Rails Api vs Facebook Auth
Jeder Winkel eingestellt (1 oder 2) mit Schienen api und devise/omniauth? für Token basiert Auth
die Schienen api und der Winkel App sind unter anderer Domäne
Hey @naskaa, wenn ich Sie richtig verstanden Sie die soziale Login ausführen möchten, ohne die Anwendung zu verlassen (dh Seitenwechsel), ist, dass richtig? – DrewT
Ich möchte den HTML-Code aus der App rails zu einem angular2-Client verschieben. Ich konnte mich von der App rails (html unter der App apps) einloggen, aber wenn ich die gleiche Route mit Ajax aus der eckigen App anrufe, scheitert es. Ich bin in der Lage, domainübergreifenden Anruf zwischen meiner AngularApp und der Api zu tun. Die einzige Ausnahme ist diese Login-Route, da die Rails-App sich selbst als externe Domain facebook (devise gem) bezeichnet und in diesem Aufruf der Ursprung im Request-Header "null" ist. – naskaa
Aber Sie wollen vermeiden, umgeleitet zu werden oder was? Ich bin mir nicht sicher, ob ich das Problem mit dem Bewegen des HTML verstehe. Was ich denke, dass Sie tun können, ist zu versuchen, eckige HTTP-Dienste '$ http.get' usw. zu verwenden, aber das wird ein Problem erzeugen, wenn Facebook versucht, den Benutzer umzuleiten. Facebook erwartet eine physische Seitenumleitung, weil sie Dinge wie Sicherheitsabfragen usw. tun müssen. Aber Sie könnten etwas tun, wie die Schienen in einem neuen Fenster öffnen und nach dem Übergeben von Auth-Daten schließen (was Sie mit einem verschlüsselten tun könnten) Websocket). – DrewT