2017-10-10 106 views
0

我开发一个网站,具有连接多个社交账户的选项,如与Facebook等 点击连接按钮连接打开了Facebook(或任何社交网站)在登录弹出窗口。 我希望我的父窗口在登录完成时得到通知。通知父窗口的登录完整的子窗口后,在浏览器中

我使用的服务器的nod​​e.js和使用Facebook的OAuth。

一个选择,我不得不是建立在父窗口的套接字连接到服务器..给它在本地存储一个唯一的ID和店铺ID。在成功登录并由我的服务器重定向后的子窗口中。我登陆/重定向到不带参数的子窗口。获取本地存储唯一标识并将其发送到服务器和服务器,然后将事件发送到父窗口套接字连接数据/通知。

,但我觉得使用本地存储并不是一个好办法。所以我正在尝试找到其他方法来实现这个目标,并且我对它充满信心。

你们可以在相同的共享上应该如何实现,有没有更好的方式来实现这一目标你的看法。

+0

两点建议:阅读:https://stackoverflow.com/help/how-to-ask和使用测试,很好用的OAuth库。 – jwilleke

回答

1

您还没有提供任何代码。所以假设你的当前设置是相当困难的。 我假设你正在用window.open()方法打开弹出窗口。

可以为社会登录点击做这样的事情上按钮:

window.loginCallback = function(obj) { 
    // do something 
}; 
window.open('url/to/social/login'); 
在弹出

然后,从成功登录重定向后,重定向到在弹出的其他一些网页,其中将有这样的脚本:

window.opener.loginCallback(dataToSend); 
window.close(); 

如果你是和的NodeJS expressjs,你可以通过任何模板系统设置dataToSend

希望它有帮助。

注:代码没有进行测试,可能包含错误。

参见:https://developer.mozilla.org/en-US/docs/Web/API/Window/opener

+0

感谢您的回答...正是我需要的......从来没有知道该方法window.opener存在。 –