某些Google网站api exploer使用mixed scheme而非重定向到uri,其中posttessage事件由开启窗口的回调函数触发,该窗口由开启窗口接收(所以window.location.origin
与window.origin
不同,但我不明白如何)。
我找不到有关它的文档,但也许我搜索不正确。
主要优势似乎是不需要服务器端令牌注册,因为一切都通过JavaScript发生。
Here’s <a href='javascript:window.open("https://accounts.google.com/o/oauth2/auth?client_id=292824132082.apps.googleusercontent.com&immediate=false&scope=https://www.googleapis.com/auth/userinfo.email&include_granted_scopes=false&proxy=oauth2relay604084667&redirect_uri=postmessage&origin=https://apis-explorer.appspot.com&response_type=token&gsiwebsdk=1&state=657454173|0.195379257&authuser=0&jsh=m;/_/scs/apps-static/_/js/k");'>an example script link</a> that will trigger a Domexception if not opened from https://apis-explorer.appspot.com/
window.opener
与origin参数匹配,则http://accounts.google.com/o/oauth2/auth访问window.opener.origin
子元素
在url中给出并因此绕过sop (但我不明白,因为没有使用Acess-control-Allow- *标头)。否则会触发异常。
那么使用postmessage执行oauth2身份验证的JavaScript api是什么? proxy=
url参数的用途是什么?