如何集成 AWS Cognito 内置 UI?

How to integrate the AWS Cognito built-in UI?

我已经试用 Cognito 几天了,现在我正在测试内置的签名 UI。我已经设法让它工作,我能够看到登录页面并使用我创建的用户成功登录。对于我的回调 URL,我使用 localhost:3000 作为测试场,我是 运行 React SPA。

但是,一旦我被重定向,我完全不知道该怎么做。文档说我应该得到一个带有 JWT 作为查询参数的 URL。相反,我得到一个 URL 的形式:

localhost:3000/?code=########-####-####-####-############

其中 # 是字母数字字符。我不认识这段代码,我不认为它是 JWT。如果任何人都可以,我将不胜感激:

  1. 解释它是什么
  2. 指导我查看有关如何使用它的任何类型的文档?

重定向后,您将获得 localhost:3000/?code=########-####-####-####-############

这意味着您已经启用code grant flow

此代码用于从 Amazon Cognito 获取令牌。

请求类型:POST

URL: https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/token

有效载荷grant_type=authorization_code& client_id=<CLIENT_ID>& code=<AUTHORIZATION_CODE>& redirect_uri=com.myclientapp://myclient/redirect

在这里你可以看到我们通过重定向 url.

在负载中传递 code

此 POST 请求的响应将是您的令牌(如果身份验证成功:))

响应示例:

{
 "access_token":"eyJz9sdfsdfsdfsd",
 "refresh_token":"dn43ud8uj32nk2je",
 "id_token":"dmcxd329ujdmkemkd349r",
 "token_type":"Bearer", 
 "expires_in":3600
}

您可以将此令牌保存在本地存储或会话存储中以进行进一步的自定义身份验证。

请参阅 amazon cognito 的所有可用端点以了解更多详细信息。

例如: Authorization Endpoint Token Endpoint

希望你明白了!