Как обмениваться данными между 2 приложениями angularjs?

0

У меня есть 2 угловых приложения, которые подключаются к одному и тому же серверу.

  1. account.myweb.com используется для входа в систему, регистрации и управления учетной записью
  2. app.myweb.com - настоящее приложение.

При успешном входе на account.myweb.com пользователь получит доступ к токенам и деталям пользователя и будет перенаправлен на app.myweb.com. Этот токен доступа необходим для приложения.myweb.com. Как я могу поделиться данными между двумя приложениями?

Теги:
asp.net-web-api

3 ответа

0
Лучший ответ

Похоже, мы можем обмануть локальное хранилище, чтобы разрешить перекрестный домен с использованием iframe и postmessage. Theres угловой модуль для него. https://github.com/ofirdagan/cross-domain-local-storage.

0

Куки могут делиться между субдоменами. В вашем случае вы можете использовать один и тот же токен между двумя приложениями. после успешного токена входа в систему, как показано ниже

$cookies.put('tokenName', 'tockenValue', { domain: '.myweb.com' });

то вы можете получить доступ к этому токену обоих приложений.

Примечание. Если ваше приложение работает с угловой версией ниже 1.3, вы не можете установить файлы cookie в определенный домен. поэтому вы должны использовать

 $document[0].cookie = "tokenName"+ "=" + "tockenValue"+ ";domain=.myweb.com";
0

Вы можете использовать $ cookies: https://docs.angularjs.org/api/ngCookies/service/ $ cookies

В качестве альтернативы мы используем angular-local-storage. Это работает хорошо. https://github.com/grevory/angular-local-storage

  • 0
    Я пытался использовать angular-local-storage, но html5 local storage не может делиться данными с другим доменом.
  • 1
    хммм, как насчет использования простой строки запроса? http://app.myweb.com/?token=xxxxxxxxx Затем, как только angular читает токен, вы можете автоматически удалить его из URL-адреса и поместить в свое локальное хранилище.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню