Перезагрузка виджета - PullRequest
0 голосов
/ 09 марта 2012

У меня есть виджет входа в систему Janrain для социальных сетей на моем сайте, и я обрабатываю запросы на аутентификацию с помощью AJAX.

В некоторых ситуациях, даже если успешный вход в систему через социальный сайт (например, Twitter)Я хочу запретить вход в систему на моем веб-сайте.

Когда это происходит, виджет «Янрейн» застревает с надписью «Загрузка ...», хотя делать больше нечего.Однако я хотел бы, чтобы пользователь мог снова попытаться войти через другой сайт (например, Facebook).

В настоящее время единственный способ сделать это - обновить всю страницу.Не обязательно удобно, но тоже не большая ноша.Тем не менее, я хотел бы избежать этого.

Вот мой код - почти точная копия / вставка того, что предоставляет Janrain:

//Initialization of the widget on page load
(function() {
    if (typeof window.janrain !== 'object') window.janrain = {};
    window.janrain.settings = {};

    janrain.settings.tokenUrl = THE_URL
    janrain.settings.tokenAction='event';

    function isReady() { janrain.ready = true; };
    if (document.addEventListener) {
     document.addEventListener("DOMContentLoaded", isReady, false);
    } else {
      window.attachEvent('onload', isReady);
    }

    var e = document.createElement('script');
    e.type = 'text/javascript';
    e.id = 'janrainAuthWidget';

    if (document.location.protocol === 'https:') {
      e.src = 'https://rpxnow.com/js/lib/(domain)/engage.js';
    } else {
      e.src = 'http://widget-cdn.rpxnow.com/js/lib/(domain)/engage.js';
    }

    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(e, s);
})();

//Handler for AJAX authentication
function janrainWidgetOnload(){
    janrain.events.onProviderLoginToken.addHandler(function(tokenResponse) {
        $.ajax({
            //(blah blah blah)
        });
    });
}

<!-- Widget is inserted into this named DIV -->
<div id="janrainEngageEmbed"></div>

Я попытался сделать функцию инициализации aименованная функция, которая затем вызывается явно при загрузке страницы.Даже при том, что это работает для инициализации виджета, повторный вызов его завершается неудачно - даже после вызова jQuery для уничтожения всего HTML-кода в целевом DIV, куда вставлен виджет.

Идеи?Спасибо!

1 Ответ

0 голосов
/ 23 мая 2012

Я считаю, что проблема в том, что вы еще не зарегистрировали локальный URL в Janrain. Попробуйте зайти в «Настройки приложения» на вкладке «Развертывание» и добавить свой локальный URL-адрес. Что-то вроде localhost.

Затем измените URL своего токена на целевую страницу. как ...

janrain.settings.tokenUrl = 'https://localhost:8000/home'

Удачи!

...