如何解决从WebKit iframe中的远程URI重定向到AIR app:/方案
| 我正在尝试在运行WebKit的AIR应用程序中实现OAuth2。应用启动时,将呈现一个本地页面(app:/login.html),该页面会加载指向远程站点的iframe。远程站点将显示一个登录页面,提交后应将其重定向回app:/authenticated.html#access_token=1234xyz。似乎WebKit正在对URL进行倒推,并且没有导致iframe重定向。 app:/方案之外的URI重定向似乎有效。 从服务器的角度来看,一切正常,如以下命令所示:$ curl -k -v -d\"email=bazquux@foo.bar.com&password=blah\" \"https://foo.bar.com/oauth2/authorization?client_id=dd9766fc8042e70777b8857bee70f996&edirect_uri=app%3A%2Fauthenticated.html&response_type=token\"
导致以下交换(请注意Location标头是正确的):
> POST /oauth2/authorization?client_id=dd9766fc8042e70777b8857bee70f996&redirect_uri=app%3A%2Fauthenticated.html&response_type=token HTTP/1.1
> User-Agent: curl/7.21.2 (x86_64-apple-darwin10.3.1) libcurl/7.21.2 OpenSSL/1.0.0d zlib/1.2.5 libidn/1.19
> Host: foo.bar.com
> Accept: */*
> Content-Length: 40
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 302 Found
< Server: nginx/0.8.53
< Date: Mon,23 May 2011 22:39:54 GMT
< Content-Type: text/html; charset=utf-8
< Connection: close
< Status: 302
< X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.0
< Location: app:/authenticated.html#access_token=44fab26915308753fd78ddd9e68c7a9c&expires_in=899&token_type=bearer
< X-Runtime: 1492
< Content-Length: 176
< Pragma: no-cache
< Set-Cookie: _session=BAh7BzoPc2Vzc2lvbl9pZCIlNWRmMDM5NWFmNDk0YjYxZDkwNDEzNGU1MzE2YzAwOTM6C3RlbmFudGkK--4e08d61ae521cf41f9f69b2257ad7599a675f35a; path=/; HttpOnly
< Cache-Control: private,no-store,no-cache,must-revalidate,post-check=0,pre-check=0,max-age=0,s-maxage=0
< Expires: Thu,01 Jan 1970 00:00:00 +0000
<
<html><body>You are being <a href=\"app:/authenticated.html#access_token=44fab26915308753fd78ddd9e68c7a9c&expires_in=899&token_type=bearer\">redirected</a>.</body></html>
关于如何使它起作用的任何想法?
解决方法
阅读后,听起来就像是您正在进入Adobe AIR沙箱墙。
iframe内容可能位于“远程”沙箱中,而可通过app:/方案寻址的内容可能位于特权更高的“应用程序”沙箱中。
您可以尝试使用AIR安全文档提供的跨沙箱边界的建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。