【问题标题】:aws cognito get jwt token in single api callaws cognito 在单个 api 调用中获取 jwt 令牌
【发布时间】:2020-06-18 08:26:05
【问题描述】:

如何通过用户名和密码从 aws cognito oauth2/token 端点单步获取 jwt 令牌(api 调用)

curl --location --request POST 'https://xxx.auth.us-east-2.amazoncognito.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic a......k' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=t34...nu'

--授权base64ecoded username:password

Response- "error": "invalid_client"

应用客户端设置:

  Allowed OAuth Flows : Authorization code grant, Implicit Grant
  Allowed OAuth scope : email , openid
App clients : ALLOW_USER_PASSWORD_AUTH

我也尝试了 oauth2/authorize,但得到了 html 页面作为响应

【问题讨论】:

    标签: amazon-cognito


    【解决方案1】:

    无需添加授权标头。相反,请使用您在 URL 中看到的代码。这对我有用。

    curl --location --request POST 'https://xxx.auth.us-east-2.amazoncognito.com/oauth2/token'
    --header 'Content-Type: application/x-www-form-urlencoded' 
    --data-urlencode 'grant_type=client_credentials' 
    --data-urlencode 'client_id=t34...nu'
    --data-urlencode 'code=afa78ac6-..-b8dd-5b'
    --data-urlencode 'redirect_uri=path'
    

    【讨论】:

      【解决方案2】:

      流向令牌端点的客户端凭据是为了接收用于机器对机器通信的访问令牌。它不基于给定的用户,因此不需要用户名和密码。 请参阅“为访问令牌交换客户端凭据” https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html

      要使用 oauth 端点登录,应通过 HostedUI 或外部 IDP 进行。但是,您可以以编程方式执行此操作,但需要调用授权和登录端点。您可以在此处查看 python 示例: https://github.com/starkshaw/aws-cognito-user-pool-custom-scope

      【讨论】:

        猜你喜欢
        • 2018-03-07
        • 2022-11-15
        • 2020-10-27
        • 2020-12-17
        • 2018-07-25
        • 1970-01-01
        • 2021-06-17
        • 2019-09-08
        • 2019-05-20
        相关资源
        最近更新 更多