Providing an OAuth Javascript API

Providing an OAuth Javascript API

本文关键字:API Javascript OAuth an Providing      更新时间:2023-09-26

我正在建立一个网站,成为OAuth 2.0提供商,就像Facebook和Twitter一样。这两个站点都使您能够通过按钮"使用Facebook/Twitter登录",该按钮会打开一个身份验证对话框。用户登录后,该框将关闭,请求页面现在具有访问令牌。他们如何以不违反跨域策略的方式执行此操作?

似乎是Facebook JS SDK是从他们的服务器加载的,这是故意绕过x域限制吗?

此外,父窗口在什么时候收到访问令牌?是孩子寄的还是父母取的?

谢谢

这是

通过将值从子寡妇传递到父窗口来完成的。父窗口打开的每个子窗口都引用了他的父窗口,可以通过以下方式访问:

var parent = window.opener.document.document; // by this you have reference to parent DOM
var someParentElement = parent.getElementById("idOfParentDomElement"); // ex: accessing particular element on parent

因此,通过此操作,您可以通过访问父级将值传递给父级:

var childDiv = document.getElemntById("SomeChildDiv").innerHTML;
someParentElement.innerHTML = childDiv // passing html text to parent div

在此处阅读有关此内容的更多信息

接收访问令牌是 OAuth 流的一部分。通过oauth令牌被接收并传递到父窗口window.opener然后window.close由父窗口调用以关闭窗口。在此父级使用访问令牌之后。

编辑:评论后:

Facebook使用postMessage,iframe或flash功能来处理依赖于浏览器的跨域消息传递。它包括all.js,这是一个关键文件,用于处理消息之间的文件。您可以在此处阅读有关其机制的更多信息