Sdílení dat a loginu mezi dvěma (a více) Nette aplikacemi
- Mára98
- Člen | 47
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 | 1032
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í