В моем мобильном приложении Cordova используется iframe для загрузки на веб-сайт. Я хочу отправлять и получать содержимое по iframe с помощью postMessage(). Тем не менее, при тестировании моего происхождения мобильных приложений всегда есть localhost:8000 или file://. В каждом другом примере на этом сайте используется уникальный домен и источник (например, www.example.com), но мое происхождение, очевидно, не уникально.
 Как я могу защитить связь между моим мобильным приложением и моим сайтом, если мое происхождение является localhost:8000/file://? Если по какой-либо причине я не могу, могу ли я использовать токены доступа для проверки любого сообщения, как показано ниже?
мобильное приложение
var iframe = document.getElementById('iframe');
var data = {
  'access_token': 'whatever'
};
iframe.contentWindow.postMessage(data, 'localhost:8000');
 website.com
window.addEventListener('message', function(event) {
  if (!event.data || !event.data.access_token) {return;}
  // ajax request to validate the token here
});
 Если это помогает, то, что я делаю, это:
-  Определите, когда iframe закончил загрузку. iframe отправляет обратно объект. 
{'loaded':true} -  Отправьте объект с булевым из iframe, когда пользователь выйдет из системы. 
{'logout':true}из{'logout':true} -  Отправьте объект с булевой и html-строкой из iframe, когда пользователь нажмет кнопку печати. 
{'print':true, 'html':htmlString} -  Отправьте зашифрованную полезную нагрузку в iframe, затем ожидайте, когда iframe вернет объект. 
{'success':true}