use*_*262 8 php amazon-web-services laravel amazon-cognito lumen
好.这是我的事.
我们正在Lumen/Laravel之上构建一个小应用程序.我们需要AWS Cognito完全照顾用户管理.
基本上有2个简单的功能.
我们需要使用PHP来做到这一点.
现在的问题是,我无法找到任何带有明确程序或示例的PHP API文档.Cognito提供API;仅适用于Android,IOS,JS,Unity和Xamarian.我需要一个类似的PHP文档.
有人使用带有PHP的cognito API,只有上述2个功能的工作示例.
注意:我几乎花了一天半时间来确定是否以及如何做到这一点.所以请不要向我发送任何在谷歌搜索中出现第一或第二的链接.很可能我可能已经看到没有运气的链接.
任何帮助,将不胜感激.
为了能够使用任何 API 请求,您首先需要正确设置您的凭据。在服务器端和 EC2 实例外部执行此操作,您将需要提供AWS 访问密钥和 AWS 秘密访问密钥、应用程序客户端 ID、应用程序客户端密钥和用户池 ID,如下所示
$args = [
'credentials' => [
'key' => 'AAAAAAAAAA',
'secret' => 'abacaaswfas',
],
'region' => 'eu-central-1',
'version' => 'latest',
'app_client_id' => '3asd123adfs1231sdfs',
'app_client_secret' => '1sdf123sdfs123sdfsfsdf132fd3213',
'user_pool_id' => 'eu-central-1_aaaW2Df3',
]
Run Code Online (Sandbox Code Playgroud)
否则,您将看到所有可能的错误,直到您获得正确的 ID。
要获取 AWS 访问密钥和 AWS 秘密访问密钥,请转到您的 AWS 控制台,单击您的姓名,然后转到帐户,然后再次单击您的姓名,转到“我的安全凭证”,然后我想您会找到出路。 。
要获取应用程序客户端 ID、应用程序客户端密钥,您需要先创建用户池,然后转到应用程序客户端并创建一个。(您可以在常规设置下找到池 ID )
一个简单的登录查询
$client = new CognitoIdentityProviderClient($args);
$client->adminInitiateAuth([
'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
'AuthParameters' => [
'USERNAME' => YOUR_USERNAME_HERE,
'PASSWORD' => YOUR_PASS_HERE,
'SECRET_HASH' => , base64_encode(hash_hmac('sha256', YOUR_USERNAME_HERE . APP_CLIENT_ID, APP_CLIENT_SECRET, true))
],
'ClientId' => APP_CLIENT_ID,
'UserPoolId' => USER_POOL_ID,
]);
Run Code Online (Sandbox Code Playgroud)
如果你让它工作,你应该能够使用此处文档中列出的任何操作
注意:这适用于API 版本 2016-04-18 和 PHP 7.1,请确保您使用的是相同版本,或者至少 API 没有重大变化,然后再假设这对您有用。
注 2:我使用的 Id 是完全随机的..但它们应该具有相同的格式。
小智 8
不幸的是,没有PHP的工作示例.目前,Cognito支持您提到的高级SDK,但不支持PHP的高级SDK.可以通过调用下面提到的API来使用低级SDK.
下面的示例应该对PHP进行一些翻译,就像这个SDK中的大多数代码一样 https://github.com/aws/aws-sdk-android/blob/master/aws-android-sdk-cognitoidentityprovider/的src/main/JAVA/COM/amazonaws/mobileconnectors/cognitoidentityprovider/CognitoUser.java
您可能希望使用ADMIN_NO_SRP_AUTH参数调用AdminInitiate auth API,而不是调用InitiateAuth,这样您就不需要在PHP中执行SRP计算.高级SDK提供了围绕此计算的包装器,可以为您管理它,但是单独执行它非常困难.
| 归档时间: |
|
| 查看次数: |
4080 次 |
| 最近记录: |