Sdílení dat a loginu mezi dvěma (a více) Nette aplikacemi

Mára98
Člen | 47
+
0
-

Dobrý den,

potřeboval bych sdílet data (a hlavně přihlášeného uživatele) mezi několika stránkami postavenými na Nette frameworku. Celé bych to přirovnal ke Google službám – jednou se přihlásíte a máte přístup k YouTube, Drivu, Mailu a tak dále.

Mám již postavenou jednu stránku na Nette plnou dat a některá z nich bych potřeboval přenést do mé nové aplikace. Mám na té stránce s daty API, ale autorizace jednotlivých resource rout probíhá přes $user->isLoggedIn(). Nechci ale uživatele nutit, aby se musel přihlašovat do dvou aplikací naráz.

Někde jsem tu četl, že jde sdílet storage a session ID, ale absolutně nevím kde a jak začít. Vytvářet další autentizační stránku pouze na data mi přijde jako přestřel a s již jednou existující aplikací časově náročné.

Předem velmi děkuji za jakékoliv rady

jiri.pudil
Nette Blogger | 1028
+
+1
-

Ahoj,

ta jednodušší cesta vyžaduje, aby obě aplikace byly schopné sdílet

  • session cookie (i.e. běží na subdoménách pod stejnou doménou) a
  • úložiště session (i.e. běží na stejném serveru nebo máš sessions např. v redisu, kam mají obě aplikace přístup).

Pak by mělo stačit v obou aplikacích nastavit session.cookieDomain na kořenovou doménu druhého řádu a session.savePath do společného úložiště. Je potřeba pohlídat ještě pár dalších nastavení, mj. open_basedir (musí zahrnovat session.savePath) a garbage collecting sessions (měl by být v obou aplikacích nastaven stejně, aby si jedna druhé nemazaly sessions dřív, než mají).

Pokud ty dva předpoklady neplatí, musíš sáhnout po robustnějším řešení

Mára98
Člen | 47
+
0
-

Ahoj, moc děkuji za pomoc. Jsem v tomhle ještě trochu nováček, kde přesně bych měl tyto věci nastavit prosím?

Phalanx
Člen | 310
+
+1
-

@Mára98 V config.neon session – https://doc.nette.org/cs/configuring#…

Mára98
Člen | 47
+
0
-

Děkuji mockrát!