0

将非平凡的单表 dynamodb 连接到反应前端的选项有哪些?我正在使用 cognito 用户池/身份验证,并让他们很好地使用带有自定义组件的放大身份验证,但我对单表 ddb 的访问模式似乎不适用于放大 api graphql 方法。

那么,有没有一种方法可以调用一个端点(例如 http api 网关)并处理好不使用放大的 cognito 身份验证?

非常感谢任何帮助/建议。

4

1 回答 1

0

我已经构建了一个 React 应用程序并通过 REST API 将它连接到我的后端(Cognito、API Gateway、Lambda、DynamoDB 等)。我的 DDB 是一个表。我在前端使用了 AWS Amplify,它运行良好。

这是使用 AWS Amplify 调用我的后端的代码片段


import {API, Auth} from "aws-amplify";


export default function MyComponent() {

  // variables, hooks, etc. go here

  async function handleSubmit(widget) {
    let widget = await createWidget(widget);
    // do stuff with widget
  } 

  async function createWidget(widget) {

    try {
      const args = {
        headers: {
          Authorization: `Bearer ${(await Auth.currentSession())
            .getIdToken()
            .getJwtToken()}`
        },
        body: {
          // data to send to my API goes here
        }
      };
    
      return API.post("my_api", "/widgets", args);
    } catch (e) {
      // do error handling
    }
  }

  return (
    // form with onSubmit=handleSubmit(widget)
  );
}

在这个片段中,我使用 Aplify 的 Auth 和 API 类来调用我的后端。我的应用程序使用 JWT 令牌对我的 API 进行经过身份验证的调用,因此我使用 Amplify 的Auth类来获取我需要与我的请求一起发送的令牌(在标题中)。我没有使用graphql,但我怀疑这个过程是相似的。

如果您不想使用 Amplify,我不明白为什么您不能直接使用您选择的客户端查询 API。

您说您的访问模式似乎不适用于 Amplify。你能详细说明为什么会这样吗?

于 2020-09-18T15:01:53.303 回答