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 模拟的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Typescript 中模拟 Cognito 响应

text [使用CLI注册Cognito用户] #aws #cognito#aws-cli

在本地使用 Cognito [离线]

AWS Cognito - 使用 JWT 与 cognito.getUser 开发工具包验证令牌

AWS Cognito:Cognito 用户池的元数据 URL 在哪里?

AWS Cognito 健康检查