我有 AWS PHP SDK 的有效实现。类似的操作$client->getUser()
正在工作,但是$client->adminCreateUser()
而其他人则不工作。
当我打电话时$client->adminCreateUser([...])
,其结果是:
Error executing "AdminCreateUser" on "https://cognito-idp.ap-southeast-2.amazonaws.com"; AWS HTTP error: Client error: `POST https://cognito-idp.ap-southeast-2.amazonaws.com` resulted in a `400 Bad Request` response:
{"__type":"MissingAuthenticationTokenException","message":"Missing Authentication Token"}
MissingAuthenticationTokenException (client): Missing Authentication Token - {"__type":"MissingAuthenticationTokenException","message":"Missing Authentication Token"}
Line 191 in /var/www/project/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php
从 CLI 引发的类似服务(例如cognito-idp admin-create-user
)具有完全相同的凭据正在工作。
是什么原因造成的?
示例详细信息
我的环境:
- 乌班图18.04
- 阿帕奇2.4.29
- PHP 7.3
- aws/aws-sdk-php 3.92.3
.aws/凭证
[default]
aws_access_key_id=XXXX
aws_secret_access_key=XXXX
我正在使用我的开发者凭据
示例代码:
$client = new CognitoIdentityProviderClient([
'version' => 'latest',
'region' => 'ap-southeast-2',
'credentials' => false, // Set to false to allow roles provisioned to our EC2 instances
]);
$result = $client->adminCreateUser([
'DesiredDeliveryMediums' => ['Email'],
'MessageAction' => 'RESEND',
'TemporaryPassword' => 'TemporaryPassword1234',
'UserAttributes' => [
['Name' => 'email', 'Value' => '[email protected] /cdn-cgi/l/email-protection'],
],
'UserPoolId' => 'ap-southeast-2_XXXX',
'Username' => '[email protected] /cdn-cgi/l/email-protection',
]);