有些应用程序将Amazon Web Services和AWS User Pool用于用户注册表。我希望能够使用AWS应用程序的用户/ AWS用户池登录信息登录Wordpress cms站点。
有人做过这样的事吗?
有什么想法吗?
答案 0 :(得分:4)
您可以使用适用于PHP的AWS开发工具包管理这样的集成,并编写一个挂在验证调用中的wordpress插件,如下面的教程中所述:
https://ben.lobaugh.net/blog/7175/wordpress-replace-built-in-user-authentication
可以在此处找到将AWS SDK for PHP安装到插件中的说明(我按照作曲家的说明进行操作):
https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html
之后,只需处理用户池身份验证的一段代码就是:
require 'vendor/autoload.php';
use Aws\CognitoIdentityProvider\CognitoIdentityProviderClient;
$cognitoIdentityProviderClient = new CognitoIdentityProviderClient(['version' => '2016-04-18',
'region' => 'us-east-1',
'credentials' => array(
'key' => get_option('aws_access_key_id'),
'secret' => get_option('aws_secret_access_key')
)]
);
$authResult = $cognitoIdentityProviderClient->adminInitiateAuth([
'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
'UserPoolId' => get_option('cognito_userpoolid'),
'ClientId' => get_option('cognito_clientid'),
'AuthParameters' => ['USERNAME' => $username, 'PASSWORD' => $password],
]);
这是一个经过身份验证的调用,因此它需要AWS凭据,您可以在上面的代码中看到占位符aws_access_key_id和aws_secret_access_key。以下是用于管理PHP凭据的AWS文档的链接:
http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html