Javascript访问OAuth 2的位置标题的URL片段

OAuth 2.0隐式授权(http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.2)涉及客户端应用程序,浏览器和授权服务器之间的一些有趣的编排。 auth服务器使用Location标头将HTTP 302状态代码返回给浏览器,如下所示:

地点:http://clientapp.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA&state=xyz&token_type=example&expires_in=3600

浏览器在执行重定向之前丢弃片段,并且clientapp.com/cb上的服务应该[从规范]响应“一个能够访问完整重定向URI的网页(通常是带有嵌入脚本的HTML文档),包括用户代理保留的片段,以及提取包含在片段中的访问令牌(和其他参数)“。

我已经实现了这个授权服务器部分,但JavaScript的经验很少。 如何让JavaScript访问浏览器在重定向之前剥离的片段?

谢谢,
迈克尔


试试像这样(摘自德国的这篇文章):

<script>
   var fragmentString = location.hash.substr(1);
   var fragment = {};
   var fragmentItemStrings = fragmentString.split('&');
   for (var i in fragmentItemStrings) {
     var fragmentItem = fragmentItemStrings[i].split('=');
     if (fragmentItem.length !== 2) {
       continue;
     }
     fragment[fragmentItem[0]] = fragmentItem[1];
   }
</script>

然后你可以用fragment['access_token']引用你的访问令牌。

链接地址: http://www.djcxy.com/p/8409.html

上一篇: Javascript access to Location header's URL fragment for OAuth 2

下一篇: token but OAuth Consumer Request 1.0 does not