【问题标题】:Postman AWS Rest API -- as javascript?Postman AWS Rest API——作为javascript?
【发布时间】:2020-03-11 05:58:24
【问题描述】:

我制作了一个简单的 IAM 身份验证 API,它返回一个随机数。 [仅限获取]
邮递员电话工作正常:
https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html?shortFooter=true

让邮递员调用普通 javascript 的简单方法是什么
(没有 npm 或 webpack)

谢谢大家

【问题讨论】:

    标签: javascript amazon-web-services postman amazon-iam restful-authentication


    【解决方案1】:

    您可以在javascript中使用axiosaws4库分别进行api调用和发送签名请求。您需要通过Cognito对用户进行身份验证并检索临时凭据(访问密钥、密钥和会话令牌)

    let request = {
      host: 'myapi.execute-api.us-west-2.amazonaws.com',
      method: 'GET',
      url: 'https://myapi.execute-api.us-west-2.amazonaws.com/foo/bar',
      path: '/foo/bar'
    }
    
    let signedRequest = aws4.sign(request,
      {
        // assumes user has authenticated and we have called
        // AWS.config.credentials.get to retrieve keys and
        // session tokens
        secretAccessKey: AWS.config.credentials.secretAccessKey,
        accessKeyId: AWS.config.credentials.accessKeyId,
        sessionToken: AWS.config.credentials.sessionToken
      })
    
    delete signedRequest.headers['Host']
    delete signedRequest.headers['Content-Length']
    
    let response = await axios(signedRequest)
    

    This 文章可能会帮助您使用基本代码从 cognito 获取临时凭据并验证用户。

    【讨论】:

    • 感谢您深思熟虑的回答。澄清一下,在这种情况下,我不是在寻求生产建议。只需一个 js 函数即可模拟 POSTMAN 为获取单个 IAM 用户的 secretAccessKey 和 accessKeyId 的响应所做的一切。我很高兴在网页上拥有这些凭据(它不是公开的)如果必须使用中间令牌,是否可以使用等待代码在同一页面上生成它?感谢阅读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多