Han*_*ans 1 amazon-web-services amazon-cognito
长话短说
为什么没有authenticate(或)与 AWS Cognito/AWS Cognito 身份提供商中的或login相同?SignUpChangePassword
--
我正在努力了解如何将 AWS Cognito 实施到 API 流程中。我对此进行了广泛的研究,感觉功能是如此明显,我一定是误解了某些东西。
该 API 将服务于 Android、iOS 和 SPA。我想象通过我的 api 的基本流程,端点如下:
/v1.0/authenticate/
Run Code Online (Sandbox Code Playgroud)
它会接受用户/密码,然后服务器上的 PHP 会执行如下操作:
require 'vendor/autoload.php';
$sdk = new Aws\Sdk([
'region' => 'us-east-1',
'version' => 'latest'
]);
$client = $sdk->createCognitoIdentity(['profile' => 'app-test-cognito']);
$result = $client->login([
'ClientId' => '6p16oao60fvakje31lexabcmplgecliecd99ntid',
'Username' => $user,
'Password' => $pwd]);
Run Code Online (Sandbox Code Playgroud)
并且$result会是一个 json 字符串,类似于
{
"result": "success",
"token": "<the token>"
}
Run Code Online (Sandbox Code Playgroud)
并且token将返回给客户端,客户端将其存储在 localStorage/内存中,并在每次其他 API 调用时返回它,直到它过期,使用Authorization: Bearer <token>. 我认为令牌将是一个 JWT,我可以在每次调用时测试其过期情况,而无需离开我的 API,还包括一个不可变的 userId,并且可以通过使用基于 API 的秘密或签名测试进行解密来信任它。
但几乎没有迹象表明存在类似的东西,除了最近这篇使用 Javascript 的博客文章,它表明有一个名为“authenticateUser”的 JS 方法:
https://mobile.awsblog.com/post/Tx2O14ZY8A5LFHT/Accessing-Your-User-Pools-using-the-Amazon-Cognito-Identity-SDK-for-JavaScript (我在这个问题中找到了这个链接:什么是用于登录 Amazon Cognito 用户池的 REST(或 CLI)API,这与我的类似,我会允许,但不能重复)。
但是,我去了他们的 Github 存储库并搜索了“authenticateUser”,但没有找到这样的方法。我还在PHP 存储库中进行了相同的搜索。没有。
顺便说一句,这(如下)是真实的,有效的,Signup所以(对我来说)似乎这样一个简单的身份验证也可以工作。我缺少什么?
require 'vendor/autoload.php';
$sdk = new Aws\Sdk([
'region' => 'us-east-1',
'version' => 'latest'
]);
$client = $sdk->createCognitoIdentityProvider(['profile' => 'app-test-cognito']);
$result = $client->signUp([
'ClientId' => '6p16oao60fvakje31lexabcmplgecliecd99ntid',
'Username' => 'fakeexampleusername',
'Password' => 'a#--sldjf383af09aw3jJJJL',
'UserAttributes' => [
[
'Name' => 'email',
'Value'=> 'me@example.com'
],
],
]); // based on pool settings, even sends out an email automatically.
Run Code Online (Sandbox Code Playgroud)
注意:我还检查了 Auth0,它看起来很棒,但也没有 SDK 登录(您必须转发到他们的服务器并使用他们提供的表单...);Stormpath 超出了价格范围。
感谢您的帮助!
没有简单的“验证”API。身份验证流程以“InitiateAuth”调用和一系列 RespondToAuthChallenge 开始。当所有挑战(例如:MFA)完成后,RespondToAuthChallenge 才会返回令牌。
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |