我正在编写使用隐式授权oauth策略的角度应用程序。如果我的cookie中没有有效的访问令牌,我将被重定向到身份验证服务器的Web界面,输入我的凭据并通过URL中的访问令牌重定向到我的站点。我的系统将其解析并写入cookie。
目前,我遇到了单元测试此解析函数的问题,该函数使用url并返回访问令牌对象。无法想出好方法,所以写在这里:
1。你如何处理单元测试(所以我不能直接请求工作oauth服务器)一个解析来自认证服务器的访问令牌的函数?
2。如何使用访问令牌构建url params?如果我复制当前访问令牌并在测试数据中使用它会是否安全?
第3。是否有可以帮助创建模拟访问令牌对象的库?
答案 0 :(得分:2)
你可以突破“足够”OAuth,就像下面链接的服务一样。这将为您提供一个超级基本的OAuth提供程序,但它真正适用于“集成测试”方案(取决于您在这些方面绘制线条的位置)。
如果您想成为单位测试纯粹主义者/狂热者,那么您可以将其分成应用程序的单元测试代码。
https://github.com/zalando-stups/mocks/tree/master/oauth2-provider
代替一个好的答案,这里有一个让你走出一个洞:)
答案 1 :(得分:1)
在接近我的oAuth身份验证服务的作者后,我已经了解了服务器在成功验证的情况下发送给我的数据。在我的情况下,oAuth服务器的响应具有以下形式:
它具有以下结构: header.access_token.hash
我对安全漏洞的担心是关注将正确的数据(我可以从浏览器获取)放入测试文件中。但事实证明,如果没有正确的哈希,令牌将无效。令牌数据的散列是在服务器端使用私钥完成的,因此如果我更改散列,则令牌将变得过时。
由于我想要检查的令牌解析功能仅使用请求的 access_token部分,我已经更改了头部和哈希部分,并且还编码了其他用户名以便进行测试目的。
所以这是我当前问题的解决方案。希望这会对某人有所帮助。