После успешного входа всплывающее окно в Facebook не закрывается, и я не получаю ответ - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь использовать Facebook SDK в своем угловом приложении для реализации функций входа в систему с помощью Facebook. Iframe открывается нормально, и процесс входа в систему работает, но после успешного входа iframe не закрывается, и я не получаю никаких ответ (токен) в моем коде. Я также включил этот скрипт в файл index.html и использую его для онлайн-платежей:

    <script src="https://test-gateway.mastercard.com/checkout/version/51/checkout.js" data-cancel="cancelCallback"
            data-complete="completePaymentCallback" data-timeout="timeoutCallback">
    </script>

    <script type="text/javascript">
      function cancelCallback() {
        document.dispatchEvent(new Event('payment-cancel', {bubbles: true}));
      }

      function completePaymentCallback(data) { //console.log(data);
        document.dispatchEvent(new CustomEvent('payment-completed', {bubbles: true, detail: data}));
      }

      function timeoutCallback() {
        document.dispatchEvent(new CustomEvent('payment-timeout', {bubbles: true}))
      }
    </script>

В скрипте оплаты я регистрирую обратные вызовы для обработки статуса платежа, этот скрипт отвечает за открытие всплывающего окна для обработки онлайн-платежей. Я понял, что если я не включу этот скрипт в мой index.html. Вход в Facebook работает отлично.

Есть ссылка на изображение, объясняющее состояние iframe https://i.ibb.co/TRY2PJS/facebook-login.jpg

Учебник, который я использовал для использования Facebook API, можно найти здесь: https://medium.com/@sarat.e99/facebook-login-oauth2-from-angular-6-f55a96c2be00

Файл javascript mastercard выдает ошибки в моей консоли, вот ошибка

Uncaught SyntaxError: Unexpected token s in JSON at position 0
    at JSON.parse (<anonymous>)
    at checkout.js:1
    at ZoneDelegate.invokeTask (zone.js:423)
    at Zone.runTask (zone.js:195)
    at ZoneTask.invokeTask [as invoke] (zone.js:498)
    at invokeTask (zone.js:1744)
    at globalZoneAwareCallback (zone.js:1781)

Фрагмент кода в сценарии mastercard, который выдает ошибки в моей консоли:

var xDomain = function(targetWindow, targetHost, name) {
                var json3 = "undefined" != typeof JSON3 ? JSON3 : require("./json3.js"),
                    callbacks = {};
                ! function(callback) {
                    window.addEventListener ? window.addEventListener("message", callback) : window.attachEvent("onmessage", callback)
                }(function(event) {
                    var payload = "string" == typeof event.data ? JSON.parse(event.data) : event.data,
                        type = payload.type,
                        data = payload.data;
                    if (type && callbacks.hasOwnProperty(type)) return callbacks[type](data)
                });
...