Наличие клиентского секрета зависит от того, собираетесь ли вы использовать для авторизации неявное или явное (или код авторизации). Nodejs приложения поддерживают оба. Ниже у меня есть пример запроса с разрешением authorization_code, где вам нужен секрет, когда вы будете выполнять запрос к конечной точке токена Cognito (передается как заголовки в авторизации). let enc = WNEMONITOR_APP_CLIENT_ID + ":" +WNEMONITOR_APP_CLIENT_SECRET
request.post({
url: 'https://YourCognitoUserPoolDomain.auth.yourregion..amazoncognito.com/oauth2/token',
headers: {
Authorization: 'Basic ' + Base64.encode(enc),
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
grant_type: 'authorization_code',
code: code,
redirect_uri: theurlofyourapplication,
scope: 'email openid profile',
client_id: WNEMONITOR_APP_CLIENT_ID
}
Ответом будет ваш id_token и refresh_token (если вы ранее настроили его для своего UserPool, в конфигурации клиента приложения установите флажок "ALLOW_REFRESH_TOKEN_AUTH")
In https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html вы можете увидеть запросы в каждом конкретном случае.
В https://aws.amazon.com/blogs/mobile/understanding-amazon-cognito-user-pool-oauth-2-0-grants/ вы можете увидеть разницу между двумя грантами (неявными - без секрета и кодом авторизации), выберите лучший для вашего случая. Но это не имеет ничего общего с языком, на котором написано ваше приложение.
Если вы уверены, что вам не нужен грант authorization_code, вы можете настроить, чтобы не иметь такой секрет: В вашем пользователе Пул в консоли AWS go для клиентов приложений (слева) и на клиенте, который вы создадите, снимите флажок «Создать секрет клиента». Я не уверен, что вы можете редактировать клиент приложения, который вы уже создали. Но я уверен, что вы можете создать новый, а затем использовать идентификатор клиента нового для получения вашего токена.