Cognito用户池和Wordpress用户(使用AWS登录wordpress)

时间:2017-12-20 16:49:42

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

有些应用程序将Amazon Web Services和AWS User Pool用于用户注册表。我希望能够使用AWS应用程序的用户/ AWS用户池登录信息登录Wordpress cms站点。

有人做过这样的事吗?

有什么想法吗?

1 个答案:

答案 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