Amazon Cognito
A wing library to work with AWS Cognito.
Prerequisites
Installation
sh npm i @winglibs/cognito 
Usage
bring cloud;
bring cognito;
let api = new cloud.Api();
api.get("/hello", inflight (req) => {
  return  {
    status: 200
  };
});
let auth = new cognito.Cognito(api);
auth.get("/hello");
Test
Wing Code
bring expect;
bring http;
test "auth happy path" {
  auth.signUp("fakeId@wing.cloud", "This-is-my-test-99!");
  auth.adminConfirmUser("fakeId@wing.cloud");
  let token = auth.initiateAuth("fakeId@wing.cloud", "This-is-my-test-99!");
  let res = http.get("{api.url}/hello", headers: {
    "Authorization": "Bearer {token}"
  });
  expect.equal(res.status, 200);
}
AWS CLI
Create a user
aws cognito-idp sign-up \
 --client-id ${USER_POOL_CLIENT_ID} \
 --username eyalk@monada.co \
 --password NicePassw0rd! \
 --user-attributes Name=name,Value=ekeren Name=email,Value=eyalk@monada.co
Get a token for the user (make sure user is confirmed)
aws cognito-idp initiate-auth \
 --client-id ${USER_POOL_CLIENT_ID} \
 --auth-flow USER_PASSWORD_AUTH \
 --auth-parameters USERNAME=eyalk@monada.co,PASSWORD=NicePassw0rd! \
 --query 'AuthenticationResult.IdToken' \
 --output text
Send a request
curl -H "Authorization: ${TOKEN}" https://5b0y949eik.execute-api.us-east-1.amazonaws.com/prod/hello