2016-05-20 2 views
0

С моего сайта, я открываю диалоговое окно входа в новом окне:Держите window.opener недвижимость через перенаправляет

window.open('mysite/Login/'); 

mysite/Login/ автоматически перенаправляет меня к провайдеру OAuth. Поставщик OAuth делает свой hokey-pokey, а затем перенаправляет меня обратно на mysite/Login/ с действительными учетными данными.

Теперь приходит сложная часть: я хочу сообщить приложению (window.opener), что логин готов.

Я попытался вернуться следующий HTML в mysite/Login:

<html><script> 
    window.opener.MyApp.proceedAfterLogin() 
</script></html> 

Но это бросает ошибку

Login:2 Uncaught TypeError: Cannot read property 'MyApp' of null

Так window.opener является нулевым. Я думаю, что это не сохраняется через перенаправления; это предположение верно? Как я могу достичь такого же результата?

Можно ли разместить объект JavaScript в файл cookie? (Не думаю, что cookie может хранить только текст, не так ли?)

ответ

0

Самое легкое решение - сохранить значение, как localStorage, затем извлечь, когда OAuth будет завершен.

locationStorage.setItem('opener', JSON.stringify(window.opener)); 

Затем, после завершения OAuth, сделайте это.

window.opener = JSON.parse(locationStorage.opener); 
Смежные вопросы