Add a Cognito authorizer to the API Gateway

  1. At API Gateway
  • Choose Authorizers
  • Choose Create an authorizer
  1. At authorizer interface
  • Authorizer name: Cognito
  • Type: Cognito
  • Cognito user pool: ChatPool
  • Token source: Authorization
  • Choose Create authorizer
  1. Check new authorizer
  2. At API gateway
  • Choose GET in /conversations
  • Choose Method request
  • Choose Edit
  • Authorization: Cognito
  1. At API gateway
  • Choose GET in /conversations
  • Choose Integration request
  • Choose Edit
  • Template body
#set($inputRoot = $input.path('$'))
{
    "cognitoUsername": "$context.authorizer.claims['cognito:username']"
}
  • Choose Save
  • Choose Save
  1. At API gateway
  • Choose POST in /conversations
  • Choose Method request
  • Choose Edit
  • Authorization: Cognito
  1. At API gateway
  • Choose POST in /conversations
  • Choose Integration request
  • Choose Edit

  • Template body
#set($inputRoot = $input.path('$'))
{
"cognitoUsername": "$context.authorizer.claims['cognito:username']",
"users":
[
#foreach($elem in $inputRoot)
 "$elem"
#if($foreach.hasNext),#end
#end
]
}
  • Choose Save
  1. At API gateway
  • Choose POST in /{id}
  • Choose Method request
  • Choose Edit
  • Authorization: Cognito
  • Choose Save
  1. At API gateway
  • Choose POST in /{id}
  • Choose Integration request
  • Choose Edit
  • Template body
#set($inputRoot = $input.path('$'))
{
    "cognitoUsername": "$context.authorizer.claims['cognito:username']",
    "id": "$input.params('id')",
    "message": "$inputRoot"
}
  • Choose Save
  1. At API gateway
  • Choose GET in /{id}
  • Choose Method request
  • Choose Edit
  • Authorization: Cognito
  • Choose Save
  1. At API gateway
  • Choose GET in /{id}
  • Choose Integration request
  • Choose Edit
  • Template body
#set($inputRoot = $input.path('$'))
{
    "cognitoUsername": "$context.authorizer.claims['cognito:username']",
    "id": "$input.params('id')"
}

  • Choose Save
  1. At API gateway
  • Choose GET in /users
  • Choose Method request
  • Choose Edit
  • Authorization: Cognito
  • Choose Save
  1. At API gateway
  • Choose GET in /users
  • Choose Integration request
  • Choose Edit
  • Template body
#set($inputRoot = $input.path('$'))
{
    "cognitoUsername": "$context.authorizer.claims['cognito:username']"
}

  • Choose Save