2013-06-14 2 views
0

Я пишу систему аутентификации, где вы можете войти с помощью G +, Facebook, логин/пароль и т.д.Доступ к созданию окна

При нажатии на «Facebook», я открываю новое окно:

window.open('/auth/' + self.action + '/facebook', '', 'width=800, height=600'); 

Это откроет окно facebook auth. Однако, когда auth закончен, мне нужно, чтобы окно CREATING (которое на данный момент еще имеет экран входа в систему) перенаправляется в рабочую область (поскольку вы вошли в систему!).

Каков наилучший способ сделать это? Я думаю, что либо родительское окно «опросы» вещей (даже не знаю, как), либо дочернее окно должно каким-то образом «сказать» своему родителю, что аутентификация прошла успешно.

Любые подсказки?

+0

Пожалуйста [не используйте подпись или слоганы в сообщениях] (HTTP: //stackoverflow.com/faq#signatures). – meagar

+1

window.opener должен выполнить эту работу: http://www.w3schools.com/jsref/prop_win_opener.asp –

ответ

2

Пока окно ребенка заканчивается на тот же домен, вы можете использовать window.opener для доступа к свойствам открытия window:

if (completedAuth) { 
    window.opener.eventBus.trigger("user:auth:successful", user); 
} 
+0

Что такое eventBus? – Merc

+0

@Merc - Я только что выбрал случайное имя в окне. Идея здесь заключается в том, что у вас есть какая-то eventing-система, в которую все могут подключиться, чтобы публиковать события, которые несколько могут заинтересовать подпиской. Вы можете заменить его простым вызовом функции, т.е. е. 'window.opener.userIsAuthorized();' –

+0

Спасибо, миллион, решил мою проблему на 100%! – Merc

Смежные вопросы