gpt4 book ai didi

javascript - 在浏览器的子窗口中登录完成后通知父窗口

转载 作者:行者123 更新时间:2023-12-03 03:18:49 24 4
gpt4 key购买 nike

我正在开发一个网站,该网站可以选择连接多个社交帐户,例如连接 Facebook 等。 单击连接按钮将在弹出窗口中打开 facebook(或任何社交网站)登录。我希望我的父窗口在登录完成时收到通知。

我在服务器上使用node.js并使用facebook oauth。

我的一个选择是在父窗口中创建到服务器的套接字连接..给它一个唯一的ID并将ID存储在本地存储中。在成功登录并由我的服务器重定向后的子窗口中..我着陆/重定向到没有参数的子窗口..获取本地存储唯一ID并将其发送到服务器,服务器依次向父窗口套接字连接发出所需的事件数据/通知。

但我觉得使用本地存储不是一个好方法。所以我试图找到其他方法来实现这个目标,但我坚持了下来。

你们能否分享一下你们对如何实现这一目标的想法,以及是否有更好的方法来实现这一目标。

最佳答案

您尚未提供任何代码。因此很难假设您当前的设置。我假设您正在使用 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

关于javascript - 在浏览器的子窗口中登录完成后通知父窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46659585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com