我正在使用:https://github.com/aws-amplify/amplify-js
有没有可行的示例,如何使用对AWS的身份验证访问?我正在使用这个:
Amplify.configure({
Auth: {
identityPoolId: configs.broker.identityPoolId,
region: configs.broker.aws_pubsub_region,
userPoolId: configs.broker.userPoolId,
userPoolWebClientId: configs.broker.userPoolWebClientId,
}
});
Amplify.addPluggable(new AWSIoTProvider(configs.broker));
Auth.signIn(configs.broker.username, configs.broker.password)
.then(user => {
resolve({ code: 200, message: 'Authorized access to AWS is used' })
})
.catch(singInErr => resolve({ code: 500, message: singInErr.message }));
如果可以(可以):
PubSub.publish(configs.broker.topic, JSON.stringify(data))
.then(res => resolve({
code: 200,
message: 'OK'
}))
.catch(err => resolve({
code: 500,
message: err.toString()
}));
但我不断得到:
[未处理的承诺拒绝:NotAuthorizedException:此身份池不支持未经身份验证的访问。]
答案 0 :(得分:1)
您是否使用amplify-cli
设置了身份验证?我对graphql和cognito也有类似的问题。通过转到标识池设置并设置Unauthenticated role
和Authenticated role
来解决此问题。我刚刚使用了使用cli cli创建的内容。
我正试图从内存中调出这个名称,因此可能缺少某些部分。但是粗略的步骤是:
Support
下的右上角是Edit Identity Pool
。点击。Unauthenticated role
和Authenticated role
的屏幕。单击选择框,然后选择适当的角色。如果创建了放大堆栈,则它应该具有两个角色,分别用词unauthdRole
和authRole
来选择。现在应该可以工作了。假设您具有正确的身份池和用户池设置。