当前位置: 首页 > 知识库问答 >
问题:

如何为AWS Cognito用户生成访问令牌?

冯通
2023-03-14

我使用Cognito用户池来保护我的API网关。现在我想使用邮递员向我的应用编程接口发出请求,但是我需要传递授权令牌,因为应用编程接口是安全的。是否有任何AWS CLI命令或REST API来生成授权令牌(通过传递用户名/密码)?我已经搜索了留档,但找不到任何例子。谢谢你的帮助。

共有3个答案

葛昕
2023-03-14

有一个AWS CLI命令来生成认证令牌。您可以为此使用初始验证CLI命令。

注意:请确保您已经完成了与预期令牌相匹配的用户池配置。

高奇
2023-03-14

使用以下命令生成auth令牌,根据您的cognito配置适当地填写xxxx,

AWS认知-IDP启动-授权-授权-流USER_PASSWORD_AUTH-客户端ID xxxx-授权-参数USERNAME=xx@xx.com,PASSWORD=xxxx

注意:您可以在适用的cognito用户池下使用任意一个用户名或密码。可以在“常规设置”下找到客户端--

不需要AccessKeyId和SecretAccessKey,因为在设置aws cli时已经定义了AccessKeyId和SecretAccessKey。如果未完成,请首先使用以下链接进行设置https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

蒋哲
2023-03-14

可以使用以下CLI命令执行此操作:

注册用户

aws-cognito-idp-sign-region{your-aws-region}--client-id{your-client-id}--usernameadmin@example.com--密码password123

确认用户注册

aws认知-IDP admin-确认-注册-区域{你的-aws-区域}-用户-池ID{你的-用户-池ID}-用户名admin@example.com

认证(获取令牌)

aws-cognito-idp-admin initiate-auth--region{your-aws region}--cli-input-jsonfile://auth.json

其中auth.json是:

{
    "UserPoolId": "{your-user-pool-id}",
    "ClientId": "{your-client-id}",
    "AuthFlow": "ADMIN_NO_SRP_AUTH",
    "AuthParameters": {
        "USERNAME": "admin@example.com",
        "PASSWORD": "password123"
    }
}

如果一切都设置正确,您应该会得到这样的响应:

{
    "AuthenticationResult": {
        "ExpiresIn": 3600,
        "IdToken": "{your-idtoken}",
        "RefreshToken": "{your-refresh-token}",
        "TokenType": "Bearer",
        "AccessToken": "{your-access-token}"
    },
    "ChallengeParameters": {}
}
 类似资料:
  • 我必须将一个遗留的身份验证系统移到Keycloak,并且我不能更改客户端上的实际工作流。因此,我需要用我的api(在node.js中)提供一个用户创建和登录系统,该系统反过来代表用户从Keycloak创建和获取访问令牌。 我能够创建一个用户,但我无法找到为该用户生成访问令牌的方法。我找到的唯一解决办法是创建一个用户并设置一个随机密码,然后要求授予提供用户名和密码的用户,但这意味着我必须在自己的一侧

  • 我一直在尝试使用简单的REST客户端以及Mozilla的REST插件。我收到“HTTP/1.1 401未授权”响应,正文中带有“{”error:“unauthorized_client”、“error_description”:“客户端未授权”}。 我已经成功获取了auth码,下面是访问令牌的POST请求,(范围r_fullprofile) https://www.linkedin.com/uas

  • 当我尝试使用以下命令生成访问令牌时: 它抛出的错误为: {“error_description”:“缺少必需的参数,包括无效的参数值,参数多次。:无法检索访问令牌:appId或重定向uri与授权码不匹配或授权码过期”,“error”:“invalid_request”}。 你能在这个问题上指导我吗?

  • 我有访问令牌和刷新令牌。但是访问令牌过期后几个时间,所以我想从刷新令牌为谷歌驱动器API生成访问令牌。所以给我的想法或代码,从谷歌驱动器API刷新令牌生成访问令牌。

  • 我正在尝试从RESTAPI获取数据,他们还没有完全实现OAuth。他们只使用OAuth在您已经拥有访问令牌后使用的签名方法。我已获得消费者密钥 你能建议怎么做吗?

  • 当我试图在访问令牌过期之前使用刷新令牌生成访问令牌时,系统会生成一个新令牌,并且一切正常。但是如果访问令牌过期,则请求返回。 中的方法不是使用我从以前的访问令牌中存储在字典中的标识生成访问令牌吗? 如果上一个更新令牌尚未过期,如何阻止客户端使用相同的刷新令牌请求新的访问令牌? oauthProvider.cs: RefreshTokenProvider.cs: 对不起,英语不好,希望你能理解!