代码之家  ›  专栏  ›  技术社区  ›  KellyTheDev

我如何从aws cognito api获取机器到机器的标记

  •  2
  • KellyTheDev  · 技术社区  · 6 年前

    我试图通过cognotapi获得一个令牌,但失败了。我已经看过他们的网站,我很难通过他们模糊的例子。

    我的目标是让第三部分服务在api上运行监视测试,这需要它进行身份验证并获取标识令牌和访问令牌。我使用cognoto的yes/no部分,这是用户池(最简单的一组)。

    从文件来看, https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-reference.html ,我不太了解流程。

    如果我检查authorize endpoint,它将使用http get方法访问一个ui,供个人手动输入信息。(文件: https://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html )

    看一下令牌端点,似乎我可以做一个机器对机器的操作,但是它开始变得奇怪,就像文档一样, https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html ,声明我需要获取一个身份验证代码,该代码将回溯到我之前编写的关于授权端点的段落。

    谢谢, 凯莉

    2 回复  |  直到 6 年前
        1
  •  0
  •   Tampa    6 年前

    这适用于托管用户界面。我验证了它的有效性。

    1)当我使用用户名和密码验证google或cognito时,我会被重定向到我的网页。注意我使用response_type=code而不是response_type=token

    https://test.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=3e0\j9m&redirect_uri=http://localhost:4200
    

    2)这是重定向后的URL:

       http://localhost:4200/?code=66dbcb-4ab1-a3c9-]cb7091
    

    3)这里是curl,但只需在js代码中执行此操作,但您首先请求获取id-oken、access-token和refresh-token

    curl -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=authorization_code&client_id=3e0duagpcsh2ga6ddn&redirect_uri=http://localhost:4200" \
    -X POST https://test.auth.us-east-1.amazoncognito.com/oauth2/token
    

    4)当托克斯即将到期时,您可以拨打以下电话。您将获得新的id_令牌和访问令牌,但不是刷新令牌。

    curl -H "Content-Type: application/x-www-form-urlencoded" \
    -d "grant_type=refresh_token&client_id=3e0duagpcsh2dnne5r8j9m&refresh_token=eyJjdHkiOiJKV1QiLCJlbmMiOiJBMjU2R....
    -X POST https://test.auth.us-east-1.amazoncognito.com/oauth2/token
    
        2
  •  0
  •   KellyTheDev    6 年前

    我发现真正做到这一点的唯一方法是使用aws cognito sdk创建一个api。我已经研究了etl策略的细节,sdk是最简单的解决方案。