2017-01-29 1 views
0

so entwickeln ich eine API erste Anwendung, Backend mit codeigniter-restserver (https://github.com/chriskacerguis/codeigniter-restserver) und Front-End mit Angular2.Codeigniter/Angular2 Sitzung Persistenz

Ich habe das Backend abgeschlossen und getestet alle Endpunkte mit Postman einschließlich Bild hochladen und löschen Endpunkte, alle funktionieren gut.

Zusätzlich zum Autorisierungs-HTTP-Header werden einige Endpunkte jedoch durch Benutzer-Login-Sitzungsüberprüfungen geschützt. Wenn ich versuche, ein Bild auf einen Endpunkt hochzuladen, überprüfe ich, ob jemand eingeloggt ist. Wenn nicht, gebe ich einen Statuscode zurück, der "nicht angemeldet" anzeigt, dann gehe ich zum Anmeldeendpunkt-Login und kehre dann zu der Bildupload-Endpunkt funktioniert dann (auf Postman).

aber aus meiner Angular2-Client-Anwendung, auch wenn ich den Anmelde-Endpunkt aufrufen, gibt es immer noch den Benutzer nicht loggen im Statuscode. Wenn ich dann den Bildupload-Endpunkt anrufe, so wie er die Sitzung sofort beendet, erhält er eine Antwort vom REST-Server.

meine Frage ist, was denkst du Postman anders als meine Angular2 Client App (ich benutze Angulr http und Observables).

Der Codeigniter Restserver ist auf localhost: 80 und Angular2 Client App auf localhost: 4200 im Dev-Modus.

Dank

Antwort

0

Ich weiß nicht, ob diese direkte Antwort auf Ihre Frage, aber ich hoffe, es wird Ihnen helfen, Ihr Problem zu verstehen und wie Sie mit Ihrem Projekt continuo ...

würde ich nicht abhängig von der Sitzung von Codeigniter, da Sie an einer Einzelseitenanwendung arbeiten und der "Restserver" statusfrei sein sollte. Das bedeutet auch, dass Sie nicht nach den Sitzungen in Codeigniter suchen sollten ...

Ihre Clientanwendung sollte Sitzungsdaten enthalten. Sie sollten also JsonWebToken (JWS) verwenden, die im lokalen Speicher oder Cookie auf dem Client gespeichert werden können. Für jede Anfrage können Sie dieses JWT-Token auch an den Server senden, wo Sie es mit einer Hilfsfunktion dekodieren (ich benutze JWT helper) und wenn die Verifikation wahr ist, dann machen Sie weitere Aktionen, sonst geben Sie Not authorized oder eine Antwort

+0

Es ist nicht möglich, eine kleine App mit eckigen in einer Codeigniter-Ansicht zu erstellen? Es gibt viele Möglichkeiten dieser Kombination und die Frage scheint immer noch gültig zu sein. – Nestor

+0

yeaa ist es möglich und auch Sie können coderigniters Sitzung verwenden, wenn Sie wan't .. Ich denke nur, dass restful Anwendung statless sein sollte und für Sie sollte Sitzung auf Ihrem Client nicht auf Ihrem Server halten ... Was ist, wenn Sie das entscheiden Sie werden einen anderen Client für diese Anwendung verbinden? –