Кнопка Intuit connectToIntuit не передает управление обратно на родительскую страницу

Мы реализовали функциональность кнопки подключения Intuit по следующей ссылке:

https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0025_Intuit_Anywhere/0020_Connect/0010_From_Within_Your_App/Add_the_Connect_Button

Он отлично работает до конца, но вместо того, чтобы вернуть управление родительской странице, он открывает приложение во всплывающем окне. Я действительно не знаю, что мне здесь не хватает. Ниже приведена страница нашего модульного теста для этой функции:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ipp="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<meta http-equiv="Cache-control" content="no-cache"/>
<title>Intuit Test Page</title>
<script src="https://js.appcenter.intuit.com/Content/IA/intuit.ipp.anywhere.js" type="text/javascript">
    </script>
<script type="text/javascript">
    intuit.ipp.anywhere.setup({
      menuProxy: 'myserver.com/intuit/proxy',
      grantUrl: 'myserver.com/intuit/connect'
    });
    </script></head><body>
    <ipp:connectToIntuit></ipp:connectToIntuit>
    </body>
    </html> 

Код тот же, за исключением имени сервера. Я очень признателен, если вы можете предоставить некоторые материалы по этому вопросу?


person anonmys    schedule 02.05.2013    source источник


Ответы (2)


Процесс OAuth для Intuit Anywhere всегда открывается во всплывающем окне. Он разработан специально для этого.

Когда они нажмут кнопку, откроется всплывающее окно, они пройдут процесс подключения OAuth и в конечном итоге будут перенаправлены обратно в ваше приложение. Затем ваше приложение должно закрыть всплывающее окно и обновить родительскую страницу вашего приложения (чтобы на странице появилось меню с синей точкой, показывающее, что они подключены).

person Keith Palmer Jr.    schedule 02.05.2013
comment
Да, вы отвечаете за написание логики для закрытия всплывающего окна и обновления родительского окна. - person Keith Palmer Jr.; 02.05.2013
comment
Как добавить логику для обновления родительского окна? - person John Pollard; 09.10.2015
comment
Простой Javascript. Тонны сообщений StackOverflow уже об этом: > stackoverflow.com/questions/2301278/ - person Keith Palmer Jr.; 09.10.2015
comment
Спасибо чувак! Итак, моя проблема заключалась в том, что когда я просматривал страницу с консолью разработчика, window.opener = {}. Я думаю, что это связано с межсайтовым скриптингом. Как только страница intuit перенаправляется обратно на мой домен, window.opener имеет значение. - person John Pollard; 09.10.2015

Я нашел очень простое решение этой проблемы.

В вашем контроллере в подтвержденном действии вы можете указать это:

render :text => '<script type="text/javascript">window.opener.location.reload(true);window.close();</script>'

Это приведет к закрытию всплывающего окна и автоматическому обновлению окна вызова.

person rept    schedule 13.10.2015
comment
Сделал это в указанном файле представления Rails. Еще очень полезно! - person SkyWriter; 20.01.2017