Cognito-Benutzerpool und WordPress-Benutzer (Anmeldung bei WordPress mit AWS)

Lesezeit: 3 Minuten

Es gibt Anwendungen, die Amazon Web Services und AWS User Pool für die Benutzerregistrierung verwenden. Ich möchte mich mit den Benutzer-/AWS-Benutzerpool-Anmeldeinformationen der AWS-App bei der WordPress-CMS-Site anmelden können.

Hat jemand so etwas gemacht?

Irgendwelche Gedanken?

Benutzer-Avatar
Ionut Trestian

Sie können eine solche Integration verwalten, indem Sie das AWS SDK für PHP verwenden und ein WordPress-Plug-in schreiben, das sich in den Authentifizierungsaufruf einklinkt, wie im folgenden Tutorial beschrieben:

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

Anweisungen zum Installieren des AWS SDK for PHP in Ihrem Plugin finden Sie hier (ich habe die Composer-Anweisungen befolgt, damit es funktioniert):

https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html

Danach wäre ein Codeabschnitt, der sich nur mit der Authentifizierung von Benutzerpools befasst, wie folgt:

    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],
    ]);

Dies ist ein authentifizierter Aufruf, daher sind AWS-Anmeldeinformationen erforderlich, wie Sie in meinem obigen Code für die Platzhalter aws_access_key_id und aws_secret_access_key sehen können. Hier ist ein Link zur AWS-Dokumentation zum Verwalten von Anmeldeinformationen in PHP:

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

  • Vielen Dank! Ich habe einige Fragen: (1) Auf der Website (ben.lobaugh.net/blog/7175/…) zum Schreiben des WordPress-Plugins muss eine Datei „auth_serv.php“ erstellt werden, aber diese Benutzernamen und Passwörter sind fest codiert. Muss ich diesen Code durch etwas anderes ersetzen? (2) Wo soll der Funktionscode “function demo_auth(..){…}” platziert werden? in einer separaten PHP-Datei? (3) Nochmals vielen Dank für den obigen Code, wo sollte der Codeabschnitt platziert werden, der sich nur mit der Authentifizierung von Benutzerpools befasst? dasselbe wie die Funktionscodedatei?

    – Entwickler

    20. Dezember 2017 um 18:54 Uhr

  • Der Benutzername und das Passwort sind nicht fest codiert. Sie stammen aus dem WordPress-System, da dies ein WordPress-Plugin ist. Sie fügen nur einen Hook hinzu, um Ihre Methode anstelle der integrierten Worpdess-Authentifizierung aufzurufen, die die WordPress-Datenbank verwendet. add_filter( ‘authenticate’, ‘demo_auth’, 10, 3 ); Das meiste ist hier erklärt: wordpress.stackexchange.com/questions/268665/…

    – Ionut Trestian

    20. Dezember 2017 um 19:01 Uhr


  • Vielen Dank! Wenn ich mir den Code aus dem von Ihnen bereitgestellten Link ansehe (ben.lobaugh.net/blog/7175/…) if($_GET['user'] == 'bob' && $_GET['pass'] == 'asdf') { echo json_encode(array('result' => '1', 'username' => 'bob', 'first_name' => 'Bob', 'last_name' => 'Jacobsen', 'email' => '[email protected]')); } else { echo json_encode(array('result' => '0')); } Es fügte der wp-Site Bob als Benutzernamen hinzu. Ersetze ich diesen Code in auth_serv.php durch Ihren Code, der sich nur mit der Authentifizierung von Benutzerpools befasst? Danke noch einmal!

    – Entwickler

    20. Dezember 2017 um 19:31 Uhr

  • Das wäre die Quintessenz. Aber ich würde vorschlagen, sich etwas mehr über das Schreiben von WordPress-Plugins zu informieren, da WordPress stark auf die interne WordPress-Datenbank angewiesen ist, sodass eine Synchronisierung zwischen den Benutzern, die Sie in der internen WordPress-Datenbank haben, und den Benutzern, die von Ihrem externen Authentifizierungsanbieter stammen, stattfinden muss.

    – Ionut Trestian

    20. Dezember 2017 um 19:38 Uhr

  • Tolle Antwort! Das hat mir auch sehr geholfen!

    – svsdnb

    11. Mai 2018 um 16:29 Uhr

1382190cookie-checkCognito-Benutzerpool und WordPress-Benutzer (Anmeldung bei WordPress mit AWS)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy