【问题标题】:Need help accessing the access code from URL provided by AWS Cognito需要帮助从 AWS Cognito 提供的 URL 访问访问代码
【发布时间】:2021-02-23 14:41:26
【问题描述】:

这是我在 AWS 上的第一个项目,如果有人可以帮助我进行 AWS Cognito 和 google 身份验证,我将不胜感激。我正在尝试使用他们的谷歌电子邮件对用户进行身份验证。用户使用 Web 浏览器登录后,我会收到一个附加到重定向 URI 的访问令牌,如下所示。我计划检索访问代码,然后通过 AWS Lambda 从 AWS Cognito 请求访问令牌,以允许用户在 AWS-Gateway 中进行各种 API 调用。

我正在努力从 URL 中提取访问令牌。

重定向网址:https://test.execute-api.us-east-2.amazonaws.com/dev/?mytoken=

用户通过google认证后的URL:https://test.execute-api.us-east-2.amazonaws.com/dev/?mytoken=#id_token=xyzzzzzzzzzzexpires_in=3600&token_type=Bearer

我已经尝试过的事情:

  • 尝试从 AWS 网关中的 URL 查询参数访问代码,但由于 URL 包含 磅符号我无法解析或访问它作为查询参数 在 AWS lambda 中。
  • 尝试访问 lambda 函数中的标头,但未传递访问代码 作为标头,它只附加到路径 URL

【问题讨论】:

  • 请更具体。你已经尝试了什么?究竟是什么不起作用?向我们展示一些具有当前输出和预期输出的代码。

标签: amazon-web-services amazon-cognito


【解决方案1】:

我可以通过以下步骤解决此问题。根本问题是请求-响应类型。

  • 更改 OAuth 工作流程以在 AWS Cognito > 应用程序客户端设置 > Oauth 2.0 下选择“授权代码授予”
  • AWS 网关 > 资源 > 方法响应 > 添加代码 320 和 405
  • 将重定向 uri 更改为:https://test.execute-api.us-east-2.amazonaws.com/dev/
  • AWS 网关 > 资源 > 方法请求 > 查询字符串参数 > 添加“代码”

正如我上面提到的,根本问题是请求-响应类型。当我们请求 google 以请求类型响应时,我们需要确保我们要求提供身份验证代码而不是身份验证令牌。这是供参考的谷歌文档: https://developers.google.com/identity/protocols/oauth2/openid-connect

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多