Java脚本访问Location标头's OAuth 2的URL片段
Javascript access to Location header's URL fragment for OAuth 2
OAuth 2.0隐式授予(http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.2)涉及客户端应用程序、浏览器和授权服务器之间的一些有趣的编排。身份验证服务器向浏览器返回一个HTTP 302状态代码,其中包含一个Location头,如下所示:
地点:;http://clientapp.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA&state=xyz&token_type=示例&expires_in=3600
浏览器在执行重定向之前会丢弃片段,clientapp.com/cb上的服务应该以[来自规范]"一个网页(通常是一个带有嵌入脚本的HTML文档),该网页能够访问包括用户代理保留的片段在内的完整重定向URI,并提取片段中包含的访问令牌(和其他参数)"来响应。
我已经实现了其中的授权服务器部分,但几乎没有JavaScript经验。如何让JavaScript访问重定向前浏览器剥离的片段?
谢谢,
Michael
试试这样的东西(取自这篇德语文章):
<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']
引用您的访问令牌。
相关文章:
- 使用Yelp API时出现OAuth错误
- 如何正确地使这个js片段内容不可知
- 具有服务器端呈现的HTML片段的主干模型
- Dropbox oauth认证的IF语句的第二部分是't已触发
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- 使用Oauth使用Javascript访问Api
- http://oauth.googlecode.com/svn/code/javascript/oauth.js已关闭,
- Instagram oauth flow in angularjs
- Slack Oauth/Authorize API Call
- 如何在谷歌开发者控制台上为firefox扩展创建oAuth项目
- 如何使用Google撤销Oauth令牌'的Javascript API
- OAuth和访问令牌
- 麻烦将coffee脚本片段移动到rails中自己的类中
- 片段uri's未在浏览器上执行
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- Java脚本访问Location标头's OAuth 2的URL片段
- OAuth 2.0 OpenID连接环回和密钥斗篷
- 使用公共API访问(无OAuth)从JavaScript编写Google电子表格
- 将页面片段加载到Twitter引导模式中
- Safari Can't在Google Oauth回调后获取Uri片段