AWS Cognito 模拟
Posted
技术标签:
【中文标题】AWS Cognito 模拟【英文标题】:AWS Cognito Mock 【发布时间】:2016-05-02 16:08:04 【问题描述】:我想为我的基于 nodejs 的 API 编写 BDD 测试,该 API 使用 AWS cognito 作为用户身份验证服务,但我不想在每次构建运行时都使用真正的 cognito 服务。
是否有一种简单而优雅的方式来模拟 Cognito 调用。
使用的框架:
Nodejs (Hapi.js) 用于 nodejs 的 aws-sdk【问题讨论】:
Amazon Cognito 不是用户身份验证服务。为了编写测试,您可以使用任何流行的模拟库来模拟 Cognito 客户端。 Cognito 针对 facebook、g+ 验证您的令牌……所以当您发送令牌时,它是一种身份验证。我知道有很多流行的库。我的问题是关于我不知道的模拟 aws-cognito 的更好方法 【参考方案1】:我们创建了一个 aws-sdk-mock npm 模块,它模拟了所有 AWS 开发工具包服务和方法。 https://github.com/dwyl/aws-sdk-mock
它真的很容易使用。只需使用服务、方法和存根函数调用 AWS.mock。
AWS.mock('CognitoIdentityServiceProvider', 'theCallYouWantToMock', function(params, callback)
callback(null, 'success');
);
然后在测试后通过调用恢复方法:
AWS.restore('CognitoIdentityServiceProvider', 'theCallYouWantToMock');
【讨论】:
很好,它也适用于 DynamoDB.DocumentClient 吗? @amgohan 它适用于 aws-sdk 中的每个服务和方法。【参考方案2】:您是如何最终嘲笑 Cognito 服务的?我没有看到任何文档。
是不是有点像
AWS.mock('COGNITO', params, callback);
【讨论】:
以上是关于AWS Cognito 模拟的主要内容,如果未能解决你的问题,请参考以下文章
text [使用CLI注册Cognito用户] #aws #cognito#aws-cli
AWS Cognito - 使用 JWT 与 cognito.getUser 开发工具包验证令牌