测试javascript中oauth2隐式授予access_token的解析器

Testing parser for oauth2 implicit grant access_token in javascript

本文关键字:token access javascript oauth2 测试      更新时间:2023-09-26

我正在编写使用隐式授权策略的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服务器的响应具有以下形式:

  1. 报头//已创建的编码算法
  2. 访问令牌//base64编码对象
  3. //之前的3项使用算法中指定标题。

结构如下:header.access_token.hash

我对安全漏洞的担心是将正确的数据(我可以从浏览器获得)放入测试文件中。但事实证明,如果没有正确的散列,令牌将无效。令牌数据的哈希是在服务器端使用私钥完成的,所以如果我更改哈希,令牌将变得过时。

由于我想检查的令牌解析函数只使用请求的access_token部分,因此我更改了报头和哈希部分,并且为了测试目的还编码了其他用户名。

这就是我当前问题的解决方案。