如何在单元测试中模拟/生成 cognito jwt 令牌?

Sam*_*ail 7 javascript unit-testing jwt amazon-cognito aws-amplify

在测试中模拟/生成 Cognito 令牌的最佳方法是什么?

我有一个设置授权标头的辅助函数:

const response = await request(service)
    .post('/graphql')
    .send({ query, variables })
    .set('Authorization', `Bearer ${token}`)
Run Code Online (Sandbox Code Playgroud)

似乎我需要自己生成令牌,但我不确定如何或是否可以这样做。

小智 -1

您可以使用Auth.signIn函数以编程方式登录并从 Cognito 接收 jwt 令牌。就像是

import { Auth } from 'aws-amplify'

const signIn = Auth.signIn({ username, password })
signIn.then(cognitoResponse => {
  // this is the token you need
  console.log(cognitoResponse.signInUserSession.accessToken.jwtToken);
})
Run Code Online (Sandbox Code Playgroud)

Auth.signIn文档:

https://aws-amplify.github.io/amplify-js/api/classes/authclass.html#signin