我们是否可以仅将AWS Amplify用于其反应库(组件),而不用于后端cli?

时间:2019-04-21 18:51:46

标签: reactjs serverless-framework aws-amplify

我们正在尝试仅将amplify用于其库中的react组件。但是据我们了解,Amplify更像是一种无服务器的后端配置工具amplify-cli,请参阅https://aws-amplify.github.io/docs/js/react

我们可以使用我们自己的后端配置,例如serverless.com

1 个答案:

答案 0 :(得分:1)

是的!使用npm安装软件包,并遵循React应用程序中的JavaScript文档。

npm i aws-amplify --save

这是我使用Cognito和API网关的配置:

import Amplify, { Auth } from 'aws-amplify'

Amplify.configure({
  Auth: {
    region: process.env.AWS_REGION,
    identityPoolId: process.env.IDENTITY_POOL_ID,
    userPoolId: process.env.USER_POOL_ID,
    userPoolWebClientId: process.env.USER_POOL_CLIENT_ID,
    mandatorySignIn: true
  },
  API: {
    endpoints: [
      {
        name: 'API',
        endpoint: process.env.API_URL,
        region: process.env.AWS_REGION,
        custom_header: async () => (
          { Authorization: `Bearer ${(await Auth.currentSession()).idToken.jwtToken}` }
        )
      }
    ]
  }
})

这使您可以像这样调用无服务器后端端点:

import { API } from 'aws-amplify'

const data = await API.get('API', '/posts')

JWT配置允许无服务器端点使用授权者类型COGNITO_USER_POOLS来授权端点使用。