У меня есть внутренний код в PHP, который будет выполнять аутентификацию с использованием социальных сетей, и внешний код, который откроет новое окно для загрузки HTML-файлов аутентификации. Последнее окно обратного вызова из серверной части отправит объект в postMessage () в средство открытия окна. Это работает для любого браузера, кроме Firefox. Кто-нибудь из вас сталкивался с этим раньше и сумел это исправить?
Я уже пытался использовать окно слушателя, но безуспешно.
login: function (url, provider) {
return new Promise(function (resolve, reject) {
window.open(url + '/v1/user/login/' + provider, '_new', 'height=500,width=500');
});
},
getLoginResponse: function () {
return new Promise(function (resolve, reject) {
window.onmessage = function (e) {
resolve(e.data);
};
});
}
let data = '{{$data}}';
data = JSON.parse(data.replace(/"/g, '"'));
let opener = window.opener;
opener.postMessage(data, "*");
Для других браузеров часть resolve(e.data)
работает, но не в Firefox.