测试javascript中oauth2隐式授予access_token的解析器
Testing parser for oauth2 implicit grant access_token in javascript
我正在编写使用隐式授权策略的angular应用程序。如果我的cookie中没有有效的访问令牌,我将被重定向到身份验证服务器的web界面,输入我的凭据,并在url中重定向到我的站点。我的系统将其解析并写入cookie。
目前我面临的问题是单元测试这个解析函数,它使用url并返回访问令牌对象。想不出好的办法,所以在这里写:
1。你如何处理单元测试(所以我不能直接请求工作的oauth服务器)解析访问令牌从身份验证服务器的功能?
2。如何使用访问令牌构建url参数?如果我复制当前的访问令牌并在测试数据中使用它会安全吗?
3。有没有可以帮助创建模拟访问令牌对象的库?
你可以突破"足够"OAuth,像下面的服务联系。这将为您提供一个超基本的OAuth提供程序,但实际上是面向"集成测试"场景的(取决于您在这些事情上画线的位置)。
如果你想成为一个单元测试的纯粹主义者/狂热者,那么你可以把这个分支到你的应用的单元测试代码中。
https://github.com/zalando-stups/mocks/tree/master/oauth2-provider没有一个好的答案,这里有一个让你摆脱困境的答案:)
在联系了oAuth身份验证服务的作者之后,我了解了在身份验证成功的情况下服务器发送给我的数据。在我的例子中,来自oAuth服务器的响应具有以下形式:
- 报头//已创建的编码算法
- 访问令牌//base64编码对象
- //之前的3项使用算法中指定标题。
结构如下:header.access_token.hash
我对安全漏洞的担心是将正确的数据(我可以从浏览器获得)放入测试文件中。但事实证明,如果没有正确的散列,令牌将无效。令牌数据的哈希是在服务器端使用私钥完成的,所以如果我更改哈希,令牌将变得过时。
由于我想检查的令牌解析函数只使用请求的access_token部分,因此我更改了报头和哈希部分,并且为了测试目的还编码了其他用户名。
这就是我当前问题的解决方案。
- 如何解决Access Control Allow Origin错误
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 使用JavaScript插入Access数据库
- AWSELB Cookie access from Javascript
- XMLHttpRequest : 不被 access-control-allow-origin 所允许
- HTML将数据保存在Access中
- 对/Token的ASP Web API调用间歇性
- 使用 node.js 设置 Microsoft Access 数据库连接
- 来自 MS Access 的 JavaScript 陷阱为空
- 无法让 token.remove() 在 Facebook Emitter 中工作
- 可以在Access Control Allow Origin中指定端口
- Access Control Allow Origin阻止我访问google api,尽管使用了dataType:
- JSONP跨原点错误'不存在Access Control Allow Origin标头'
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- Angular$resource调用不被Access Control Allow使用Safari接受,而被Chrome接
- Instagram API access_token request and Access-Control-Allow-
- 方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method
- Flickr API OAuth Access Token request and Access-Control-All
- JS SDK facebook API pass access token
- 客户端(Jquery&Angular)不能发送带有x-access-token头的请求