【问题标题】:How to add user to User Pools of Amazon Congnito with Amazon PHP SDK如何使用 Amazon PHP SDK 将用户添加到 Amazon Cognito 的用户池
【发布时间】:2017-01-09 14:13:12
【问题描述】:

我可以使用 Aws\CognitoIdentity 从 Amazon Cognito 获取带有 Facebook 令牌 的身份 ID Amazon PHP SDK (https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CognitoIdentity.CognitoIdentityClient.html) 的 \CognitoIdentityClient

$identityClient = AWS::createClient('CognitoIdentity');
$idResp = $identityClient->getId(array(
    'AccountId' => 'MY_ACCOUNT_ID',
    'IdentityPoolId' => 'MY_IDENTITY_POOL_ID',
    'Logins' => array(
        'graph.facebook.com' => $fbUser->token,
    )
));

$identityId = $idResp["IdentityId"];

我可以在Federated Identities身份浏览器页面看到身份id,但是没有用户池用户页面中的任何用户记录。

这是预期的结果吗?如果是,我如何将用户信息添加到 用户池 并获取它们?

感谢任何帮助。

【问题讨论】:

    标签: amazon-cognito amazon-cognito-facebook


    【解决方案1】:

    如果您仅使用 Facebook 登录,用户将不会出现在您的用户池中。 Cognito 用户池和 cognito 联合身份是独特的服务。将用户池视为它自己的提供者 - 从您的身份池的角度来看,它与 facebook 平行。如果您想让用户出现在您的用户池中,您需要使用用户池登录并将令牌传递到您的身份池(就像您使用 facebook 所做的那样)。请参阅我们的developer guide,了解您需要的确切配置。

    【讨论】:

    • 我在 PHP SDK 中使用 CognitoIdentityProvider 的 signUp 方法,但是我得到了关于“无法验证客户端的秘密哈希”的错误。看来我的 ClientId 是错误的,我在哪里可以得到我的 ClientId ?谢谢。
    • 它来自您在控制台中生成/链接到您的用户池的“应用程序”。你可以在那里得到 id。
    • 我设置了那个ClientId,但仍然出现同样的错误$identityProvider = AWS::createClient('CognitoIdentityProvider');$result = $identityProvider->signUp(['ClientId' => 'ClientId' , ....]);我做错了什么吗?
    • 那里有秘密吗?听起来你设置了一个,但没有给它。如果是这样,请尝试从控制台重新创建一个新客户端。如果您想要一个秘密,请记下两者。可以只使用客户端 ID。
    猜你喜欢
    • 2019-09-02
    • 2016-10-23
    • 2017-01-13
    • 2017-07-06
    • 2016-09-26
    • 1970-01-01
    • 2018-07-07
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多