消息:“ initiateAuth()中缺少配置中的凭据”,我缺少哪些凭据?

时间:2019-04-13 22:41:07

标签: node.js amazon-web-services amazon-cognito

我正在尝试在项目中设置用于用户身份验证的基本功能,但是当我使用aws-sdk函数initiateAuth()请求auth令牌时,它告诉我我的配置对象中缺少凭据。我设法在没有任何凭据的情况下设置了用户创建和确认。更重要的是,文档并未明确说明initiateAuth()是否需要任何凭据,或所需的凭据。

当我请求身份验证时,出现此错误

{ Error: connect ENETUNREACH 169.254.169.254:80
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
  message: 'Missing credentials in config',
  errno: 'ENETUNREACH',
  code: 'CredentialsError',
  syscall: 'connect',
  address: '169.254.169.254',
  port: 80,
  time: 2019-04-13T22:26:34.352Z,
  originalError:
   { message: 'Could not load credentials from any providers',
     errno: 'ENETUNREACH',
     code: 'CredentialsError',
     syscall: 'connect',
     address: '169.254.169.254',
     port: 80,
     time: 2019-04-13T22:26:34.352Z,
     originalError:
      { errno: 'ENETUNREACH',
        code: 'ENETUNREACH',
        syscall: 'connect',
        address: '169.254.169.254',
        port: 80,
        message: 'connect ENETUNREACH 169.254.169.254:80' } } }

我的代码很简单

const http = require("http")
const aws = require('aws-sdk')
const JSON5 = require('json5')
const serviceProvider = aws.CognitoIdentityServiceProvider

aws.config.update({region : 'us-east-2'})
var service = new serviceProvider()


function authorizeUser(username, password){
    service.initiateAuth({
        AuthFlow: 'USER_PASSWORD_AUTH', 
        ClientId: 'placeholder', 
        AuthParameters: {
          'USERNAME': username,
          'PASSWORD': password
        },
    },
    function(error, data){
        if(error){
            console.log(error)
        }
        else if(data){
            console.log(data)
        }
    })

}

为什么此功能似乎在不需要凭证时会要求提供凭证?如果它需要凭证,它需要哪些凭证,以及如何提供它们?

编辑:这篇文章解决了我的问题。我仍然希望能得到一个答案,为什么它会起作用。

我所做的只是更改一行代码。

aws.config.update({region : 'us-east-2', accessKeyId: 'anything', secretAccessKey: 'anything'})

User Pools for Amazon Cognito - CredentialsError: Missing credentials in config

0 个答案:

没有答案