Я создавал REST API без сервера с AWS API Gateway, Lambda и Serverless Framework. Я хочу создать веб-сайт, на котором пользователи будут регистрироваться, выбрать план API (бесплатный, basi c, pro) и получить соответствующий долговременный ключ API, с помощью которого они могут запрашивать безсерверный API определенное количество раз в месяц. .
Я понимаю, что с Cognito и автономным пользовательским интерфейсом вы можете легко обрабатывать аутентификацию пользователей с помощью токенов CUP (Cognito User Pool), которые на самом деле являются Json веб-токенами. Я хотел бы автоматически создать и связать ключ API с планом использования, а затем с пользователем Cognito.
Первая часть проста: с SDK AWS Javascript это так же просто, как сделать :
var params = {
keyId: 'whateverKeyId', /* required */
keyType: 'API_KEY', /* required */
usagePlanId: 'whateverUsagePlanId' /* required */
};
apigateway.createUsagePlanKey(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Я борюсь со второй частью ... Должен ли я добавить ключ API в качестве пользовательского атрибута в пул пользователей? Но тогда я не знаю, как получить ключ API. Документация не совсем понятна. Добавить пользователя и ключ API в мою собственную базу данных DynamoDB после регистрации (что на самом деле было бы пустой тратой Cognito)?
Если честно, это похоже на обычный сценарий и тот факт, что я провел три дня поиск решения по всему inte rnet без успеха заставляет меня думать, что есть кое-что, чего я не понимаю ...
Заранее спасибо за ваш вклад!