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

rde*_*per 6 wordpress amazon-web-services amazon-cognito

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

有没有人做过这样的事情?

有什么想法吗?

Ion*_*ian 8

您可以通过使用适用于 PHP 的 AWS 开发工具包并编写一个连接到身份验证调用的 wordpress 插件来管理此类集成,如下面的教程中所述:

https://ben.lobaugh.net/blog/7175/wordpress-replace-built-in-user-authentication

可以在此处找到将适用于 PHP 的 AWS 开发工具包安装到插件中的说明(我按照 Composer 说明进行操作):

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],
    ]);
Run Code Online (Sandbox Code Playgroud)

这是一个经过身份验证的调用,因此它需要 AWS 凭证,正如您在我上面的代码中看到的占位符 aws_access_key_id 和 aws_secret_access_key。这是用于在 PHP 中管理凭证的 AWS 文档的链接:

http://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html