У меня есть 2 угловых приложения, которые подключаются к одному и тому же серверу.
При успешном входе на account.myweb.com пользователь получит доступ к токенам и деталям пользователя и будет перенаправлен на app.myweb.com. Этот токен доступа необходим для приложения.myweb.com. Как я могу поделиться данными между двумя приложениями?
Похоже, мы можем обмануть локальное хранилище, чтобы разрешить перекрестный домен с использованием iframe и postmessage. Theres угловой модуль для него. https://github.com/ofirdagan/cross-domain-local-storage.
Куки могут делиться между субдоменами. В вашем случае вы можете использовать один и тот же токен между двумя приложениями. после успешного токена входа в систему, как показано ниже
$cookies.put('tokenName', 'tockenValue', { domain: '.myweb.com' });
то вы можете получить доступ к этому токену обоих приложений.
Примечание. Если ваше приложение работает с угловой версией ниже 1.3, вы не можете установить файлы cookie в определенный домен. поэтому вы должны использовать
$document[0].cookie = "tokenName"+ "=" + "tockenValue"+ ";domain=.myweb.com";
Вы можете использовать $ cookies: https://docs.angularjs.org/api/ngCookies/service/ $ cookies
В качестве альтернативы мы используем angular-local-storage
. Это работает хорошо. https://github.com/grevory/angular-local-storage
http://app.myweb.com/?token=xxxxxxxxx
Затем, как только angular читает токен, вы можете автоматически удалить его из URL-адреса и поместить в свое локальное хранилище.