【问题标题】:Authentication with AWS Incognito使用 AWS Cognito 进行身份验证
【发布时间】:2018-03-14 00:08:45
【问题描述】:

感谢blog.kdgregory.com,我能够在示例 java 应用程序中使用 amazon cognito 进行身份验证。

但是,@KeithGregory 使用了 aws SDK 版本:1.11.60。在最新版本的 aws SDK (1.11.205) 中,大多数构造函数(例如 AWSCognitoIdentityProviderClient)现已弃用。

有没有人对如何在更新的版本中实现 aws cognito 有任何想法。 AWS 文档对实施不是很清楚。

谢谢。

【问题讨论】:

    标签: java amazon-web-services sdk amazon-cognito aws-cognito


    【解决方案1】:

    一般来说,所有旧的客户端构造函数在较新的 AWS 库中都已弃用。您需要执行以下操作:

    AWSCognitoIdentityProvider provider = 
            AWSCognitoIdentityProviderClientBuilder.standard().defaultClient();
    

    这是最基本的版本 - 如果您需要传递不同的凭据提供程序或区域,则需要添加更多参数。请参阅AWSCognitoIdentityProviderClientBuilderAWSCognitoIdentityProvider 了解更多详情。

    【讨论】:

    • 感谢您的及时回复。但是当我尝试登录时,我可能会出现“客户端不可变”错误。跟踪是:java.lang.UnsupportedOperationException:使用构建器创建时客户端是不可变的。在 com.amazonaws.AmazonWebServiceClient.checkMutability(AmazonWebServiceClient.java:920)
    • 我想通了。我在客户端显式设置区域(使用另一种不推荐使用的方法 setRegion)。正确的方法是在创建客户端时使用 withRegion。这解决了问题:AWSCognitoIdentityProvider cognitoClient = AWSCognitoIdentityProviderClientBuilder.standard().withRegion(Regions.US_WEST_2).defaultClient();
    • @ayoalatishe AWSCognitoIdentityProviderClientBuilder 的函数 defaultClient 是静态的,只返回 standard().build()。我想你想要的是 AWSCognitoIdentityProviderClientBuilder.standard().withRegion(Regions.US_WEST_2).build();
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2021-04-28
    • 2019-06-19
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多