2017-10-26 5 views
0

Applicaton DiagramKommunikation zwischen 2 Laravel Anwendungen

ich versuche, dies zu erreichen, verschiedene Installationen von Laravel Rahmen auf verschiedene Servern untereinander und gemeinsame Nutzung von Ressourcen mit der Hauptanwendung (Super-Anwendung) wie in der Abbildung oben zu arbeiten.

Die Super-Anwendung befindet sich auf dem Hauptserver und beherbergt das Benutzerverwaltungsmodul, das festlegt, wer gerade im System angemeldet ist. und wenn Sie eingeloggt sind, können Sie dann andere Module laden, das ist ein anderes Laravel 5 Setup, das auf einem anderen Server sitzt.

Diese Anwendungen funktionieren nur, wenn ein Benutzer in der Hauptanwendung angemeldet ist. und das Objekt Auth-> user() in der Super-Anwendung wird an die entsprechenden Anwendungen (A1 und A2) zur Dateneingabe gesendet.

Mein erster Ansatz war HMVC mit Laravel 5 zu implementieren, aber HMVC impliziert, dass nur ein Laravel-Setup verwendet wird, was bedeutet, dass nur ein Server verwendet wird. Aber wenn Sie verschiedene Anwendungen auf verschiedenen Servern ausführen und versuchen, sie mit Authentifizierung von einer primären Anwendung vom Hauptserver zu binden, hatte ich keine Ahnung, wie möglich das ist, aber ich glaube, dass es möglich ist.

Bitte wie erreiche ich das, das ist, wie mein Chef es will, und besteht darauf, dass es so ist.

+0

Vielleicht möchten Sie sich dieses Thema ansehen https://laracasts.com/discuss/channels/laravel/same-login-on-two-different-laravel-projects?page=1 –

+0

ok, @LarsMertens, Ich mache das sofort ... danke – Andaeiii

Antwort

1

Es ist eine seltsame Einrichtung, aber ich habe zwei Lösungen im Sinne:

1) Wenn Ihre Anwendungen die gleiche Domain freigeben können Sie einen freigegebenen Cookie nutzen könnten. Zum Beispiel, sagen wir mal, dass Ihre Anwendungen sind wie folgt konfiguriert:

SA example.org (die auf Server-Nummern 1)

A1 a1.example.org (die auf Server verweist 2)

A2 a2.example.org (die auf Server verweist 3)

Von SA können Sie ein Identifikations-Cookie für Ihre Unteranwendungen speichern (und jede Laravel-Installation kann darauf zugreifen).

2) Wenn Sie dieselbe Domain nicht teilen können, können Sie sich unter SA anmelden und dann mit einigen POST-Daten zu Ihren Subanwendungen umleiten. A1 oder A2 wird in der Lage sein, den Identifikationsparameter aus der Anfrage zu sammeln und in der Sitzung/dem Cookie zu speichern, um Sie zu erinnern.

Schließlich, mit Ihrem Identifikationscode, könnten Sie eine API schreiben, um die Daten des Benutzers abzurufen.

+0

Mein letzter Versuch war, über API zu gehen, aber wenn ich das tun müsste, würde es sehr komplex werden. vor allem, wenn Sie die Ansichten unabhängig von der Hauptanwendung rendern müssen. die API wäre zu langweilig ... – Andaeiii

+0

Über API müssen Sie nur Daten greifen. Dann können Sie die Objekte füllen, die von der sekundären Anwendung benötigt werden. Vielleicht hast du in deinen Ansichten '{{\ Auth :: user() -> Benutzername}}', also kannst du durch das Scrapen der Benutzerdaten einen neuen 'Auth'-Wächter anzeigen und ihn mit den Daten deines Benutzers füllen. Dann wird alles anders sein. – Mavin

+0

danke @Vicenzo Maragony ... ich habe gerade alles durchgegangen, und deine Antwort ist gültig für meine Suche .... ich würde mit dem Cookie Ansatz gehen .. macht sehr viel Sinn. – Andaeiii

Verwandte Themen