如何使用Amazon Congnito的Amazon PHP SDK对用户进行身份验证

时间:2016-09-06 11:21:09

标签: php amazon-web-services amazon-cognito

我使用 ConfirmSignUp 方法确认用户,之后,如何使用其电子邮件和密码对用户进行身份验证?

$identityProvider = AWS::createClient('CognitoIdentityProvider');

$result = $identityProvider->confirmSignUp([
    'ClientId'         => 'MY_CLIENT_ID',
    'ConfirmationCode' => $code,
    'Username'         => $username
]);

我发现方法 InitiateAuth ,但似乎不是。

使用JS SDK示例(http://docs.aws.amazon.com/zh_cn/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html),JS可以使用以下代码对用户进行身份验证:

var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
    onSuccess: function (result) {
        console.log('access token + ' + result.getAccessToken().getJwtToken());
    },

    onFailure: function(err) {
        alert(err);
    },
});

我使用Amazon PHP SDK(https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CognitoIdentity.CognitoIdentityClient.html)。

PHP SDK有相同的方法吗?或者我可以找到一些关于它的文件?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

目前Cognito不支持PHP的高级SDK。可以通过调用下面提到的API来使用低级SDK,

http://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CognitoIdentityProvider.CognitoIdentityProviderClient.html

您可能希望使用ADMIN_NO_SRP_AUTH参数调用AdminInitiate auth API,而不是调用InitiateAuth,这样您就不需要在PHP中执行SRP计算。用户池使用SRP验证密码,其数学非常复杂。移动SDK会为您处理它,但使用admin no srp auth会绕过它。