Я разрабатываю приложение в AngularJS, вот контекст:
Я столкнулся с проблемой:
Вот мой вопрос:
Решением, которое я себе представлял, является создание уникального идентификатора при запуске приложения (текущая временная метка + случайное значение), и каждая вкладка идентифицируется с этим идентификатором. Проблема заключается в том, что у меня будет параллелизм на localStorage, если 2 приложения читают/записывают одновременно, они могут писать поверх данных, написанных другим.
Один из вариантов - не дождаться истечения срока действия маркера. Но случайное количество времени до его истечения (число, которое вы могли бы создать при запуске приложения, например).
Затем, когда одно из приложений достигает этой точки времени, он запрашивает новый токен с сервера и сохраняет его в localStorage (а также обновляет заголовок $ http или все, что вы используете).
Ваше приложение также должно прослушивать изменения в localStorage, например, эта вкладка будет уведомлена о наличии нового токена и должна обновить его переменную, а также заголовок $ http (или снова все, что вы используете).
убедитесь, что при выполнении вашей случайной функции вы убедитесь, что разница во времени значительна (не пара секунд), иначе вы все равно можете запросить 2 токена, потому что другая вкладка все еще ожидает ответа.