Я работаю над приложением, в котором мне нужно отслеживать изменения некоторых устройств и показывать их в интерфейсе.
Для входа пользователя я использую cognito и получаю учетные данные после входа в систему, и у меня уже есть действительные учетные данные, поскольку я подключил AWS DynamoDB, используя те же учетные данные.
Теперь я хочу зарегистрировать устройство aws.iot с теми же учетными данными cognito.
Я подписан на https://github.com/aws/aws-iot-device-sdk-js
Я проверил некоторые статические учетные данные с пользователем aws, например:
client.device = awsIot.device({
clientId: clientID,
host: host,
accessKeyId: AccessKeyId,
secretKey: secretKey,
protocol: 'wss'
});
И это прекрасно работает.
Затем я попробовал то же самое, используя aws cognito AssessmentKeyId и secretKey, но на этот раз я получил 403.
Я проверил подключение к AWS IoT с помощью веб-сокета с Cognito аутентифицировал пользователей, но это не помогло.
Мой текущий код выглядит так:
var awsIot = require('aws-iot-device-sdk');
AWS.config.credentials.get(() => {
const IoT = new AWS.Iot();
IoT.attachPrincipalPolicy({
policyName: 'PubSub',
principal: AWS.config.credentials.identityId
}, (err, res) => {
if (err) {
} else {
let credential;
if (AWS.config.credentials && AWS.config.credentials.data && AWS.config.credentials.data.Credentials) {
let credentials = AWS.config.credentials.data.Credentials;
awsIot.device({
clientId: clientID,
host: host,
accessKeyId: credentials.AccessKeyId,
secretKey: credentials.secretKey,
protocol: 'wss',
sessionToken: credentials.SessionToken
});
}
}
});
});
Может ли кто-нибудь помочь мне, что мне здесь не хватает.