我已经使用Cognito进行了几天的实验,现在我正在测试内置的签名UI。我设法使其正常运行,我能够看到登录页面并成功使用我创建的用户登录。对于我的回调URL,我使用localhost:3000作为测试平台,在此运行React SPA。
但是,我一经重定向就完全不知所措。文档说我应该获得一个带有JWT作为查询参数的URL。相反,我得到的是以下形式的URL:
localhost:3000/?code=########-####-####-####-############
其中#
是字母数字字符。我不认识此代码,我认为它不是JWT。我会很感激任何人都可以:
答案 0 :(得分:3)
重定向后,您将获得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
我希望现在一切都清楚了!