Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Sicherheitsauthentifizierung mit AWS Cognito

PHP-Sicherheitsauthentifizierung mit AWS Cognito

PHPz
PHPzOriginal
2023-07-26 14:54:26877Durchsuche

PHP-Sicherheitsauthentifizierung mit AWS Cognito

AWS Cognito ist ein Benutzerauthentifizierungs- und Autorisierungsdienst, der Entwicklern hilft, Benutzerverwaltungs- und Authentifizierungsfunktionen für Anwendungen einfach zu implementieren. In diesem Artikel erfahren Sie, wie Sie AWS Cognito mit PHP verwenden, um Sicherheitsüberprüfungsfunktionen zu implementieren. Wir demonstrieren die spezifischen Implementierungsschritte, indem wir Codebeispiele schreiben.

Voraussetzungen
Um die in diesem Artikel beschriebene Funktionalität erfolgreich implementieren zu können, müssen Sie die folgenden Voraussetzungen erfüllen:

  1. Zugriff auf ein AWS-Konto und AWS CLI (Befehlszeilenschnittstelle) haben;
  2. AWS konfiguriert und aktiviert haben Cognito-Dienst.

Schritt 1: Benutzerpool erstellen
Zuerst müssen wir in AWS Cognito einen Benutzerpool erstellen, um unsere Benutzeranmeldeinformationen und andere zugehörige Informationen zu speichern und zu verwalten. Sie können die AWS CLI oder die AWS Management Console verwenden, um einen Benutzerpool zu erstellen. Hier ist ein Beispielbefehl zum Erstellen eines Benutzerpools mithilfe der AWS CLI:

aws cognito-idp create-user-pool --pool-name MyUserPool --auto-verified-attributes email --policies PasswordPolicies=RequiredLength=8,RequireUppercase=true,RequireLowercase=true,RequireNumbers=true,RequireSymbols=true --schema Name=email,AttributeDataType=Email:STRING,Required=true,Name=phone_number,AttributeDataType=Number:STRING,Required=false

Der obige Befehl erstellt einen Benutzerpool mit dem Namen MyUserPool mit aktivierter E-Mail-Verifizierung und Passwörtern, die den angegebenen Regeln entsprechen müssen.

Schritt 2: Benutzerpool-Client einrichten
Als nächstes müssen wir einen Benutzerpool-Client für unsere Anwendung erstellen, damit wir ihn für die Benutzerauthentifizierung innerhalb der Anwendung verwenden können. Sie können die AWS CLI oder die AWS Management Console verwenden, um einen Benutzerpool-Client zu erstellen. Hier ist ein Beispielbefehl zum Erstellen eines Benutzerpool-Clients mithilfe der AWS CLI:

aws cognito-idp create-user-pool-client --user-pool-id YOUR_USER_POOL_ID --client-name MyUserPoolClient --no-generate-secret --explicit-auth-flows ALLOW_REFRESH_TOKEN_AUTH --refresh-token-validity 30

Der obige Befehl erstellt einen Benutzerpool-Client mit dem Namen MyUserPoolClient und ermöglicht die Authentifizierung mithilfe eines Aktualisierungstokens, das 30 Tage lang gültig ist.

Schritt 3: PHP-Code zur Implementierung der Authentifizierung
Da wir nun den Benutzerpool und den Benutzerpool-Client erstellt haben, schreiben wir als Nächstes PHP-Code zur Implementierung der Authentifizierungsfunktion.

Zuerst müssen wir AWS SDK für PHP einführen. Sie können es über Composer installieren oder den Quellcode des AWS SDK für PHP direkt herunterladen und importieren.

require 'vendor/autoload.php'; // 引入 AWS SDK for PHP 的自动加载文件
use AwsCognitoIdentityProviderCognitoIdentityProviderClient;

Dann müssen wir die Zugangsdaten für AWS Cognito konfigurieren. Sie können Ihre Benutzerpool-ID, Benutzerpool-Client-ID und AWS-Regionsinformationen in der AWS-Managementkonsole finden und die entsprechenden Werte im folgenden Code ersetzen.

$poolId = 'YOUR_USER_POOL_ID';
$clientId = 'YOUR_USER_POOL_CLIENT_ID';
$region = 'YOUR_AWS_REGION';

Als nächstes müssen wir den CognitoIdentityProviderClient instanziieren und die entsprechende Konfiguration festlegen.

$client = new CognitoIdentityProviderClient([
    'version' => 'latest',
    'region' => $region
]);
$client->setCredentials([
    'key' => 'YOUR_AWS_ACCESS_KEY_ID',
    'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY'
]);

Jetzt sind wir bereit für die Authentifizierung. Der folgende Codeausschnitt zeigt, wie Sie sich bei AWS Cognito authentifizieren.

$result = $client->adminInitiateAuth([
    'UserPoolId' => $poolId,
    'ClientId' => $clientId,
    'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
    'AuthParameters' => [
        'USERNAME' => 'testuser@example.com',
        'PASSWORD' => 'P@ssw0rd'
    ]
]);
var_dump($result);

Im obigen Code verwenden wir die Variable adminInitiateAuth 方法进行身份验证。您需要替换 'USERNAME''PASSWORD' 的值为您的实际用户名和密码。成功验证后,$result, um das Authentifizierungsergebnis zu enthalten.

Fazit
In diesem Artikel haben wir gelernt, wie man AWS Cognito verwendet, um die PHP-Sicherheitsüberprüfungsfunktion zu implementieren. Dazu erstellen wir einen Benutzerpool und einen Benutzerpool-Client und verwenden dann PHP-Code zur Authentifizierung. AWS Cognito bietet eine einfache, aber leistungsstarke Möglichkeit, Benutzeranmeldeinformationen zu verwalten und die Authentifizierung zu implementieren, wodurch unsere Anwendungen sicherer und zuverlässiger werden.

Das obige ist der detaillierte Inhalt vonPHP-Sicherheitsauthentifizierung mit AWS Cognito. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn