我有2個角度應用程序連接到相同的後端。如何在2個angularjs應用程序之間共享數據?
- account.myweb.com是用來登錄,註冊和管理帳戶
- app.myweb.com是真正的應用程序。
成功登錄account.myweb.com後,用戶將獲得訪問令牌和用戶詳細信息,並將被重定向到app.myweb.com。 app.myweb.com需要此訪問令牌。我怎樣才能分享2個應用程序之間的數據?
我有2個角度應用程序連接到相同的後端。如何在2個angularjs應用程序之間共享數據?
成功登錄account.myweb.com後,用戶將獲得訪問令牌和用戶詳細信息,並將被重定向到app.myweb.com。 app.myweb.com需要此訪問令牌。我怎樣才能分享2個應用程序之間的數據?
似乎我們可以欺騙本地存儲以允許使用iframe和postmessage進行跨域。 Theres角度模塊。 https://github.com/ofirdagan/cross-domain-local-storage。
你可以使用$餅乾:https://docs.angularjs.org/api/ngCookies/service/ $餅乾
另外,我們使用angular-local-storage
。它運作良好。 https://github.com/grevory/angular-local-storage
Cookie可以在子域之間共享。在你的情況下,你可以在你的2個應用程序之間共享相同的令牌後成功登錄商店令牌像下面
$cookies.put('tokenName', 'tockenValue', { domain: '.myweb.com' });
,那麼你可以訪問此令牌兩種應用。
注 - 如果您的應用程序使用低於1.3的角度版本運行,則無法將Cookie設置爲特定域。因此你必須使用
$document[0].cookie = "tokenName"+ "=" + "tockenValue"+ ";domain=.myweb.com";
我試圖使用角度本地存儲但html5本地存儲不能與其他域共享數據。 – Reynaldi
嗯,如何使用簡單的查詢字符串? 'http://app.myweb.com/?token = xxxxxxxxx' 然後只要角度讀取令牌,就可以讓它自動從URL中移除它並將其放入其自己的本地存儲中。 – HankScorpio
絕對是帶有令牌的查詢參數。 – Darryl