AWS Cognito est un puissant service d'authentification et d'autorisation qui aide les développeurs à mettre en œuvre facilement les capacités de gestion des utilisateurs et d'authentification de leurs applications. Dans cet article, nous montrerons comment utiliser AWS Cognito pour s'intégrer à PHP pour implémenter la vérification de la sécurité et expliquer le processus d'implémentation en détail avec des exemples de code.
Avant de commencer, assurez-vous de rencontrer les conditions préalables suivantes:
Tout d'abord, créez un pool d'utilisateurs dans AWS Cognito pour stocker et gérer les informations d'identification des utilisateurs. Vous pouvez utiliser le CLI AWS ou la console de gestion AWS pour créer un pool d'utilisateurs. Voici des exemples de commandes pour créer un pool d'utilisateurs à l'aide de la CLI AWS:
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
Cette commande crée un pool utilisateur nommé "MyuserPool", permet la vérification par e-mail, et les mots de passe doivent respecter les règles spécifiées.
Ensuite, pour que votre application interagisse avec le pool d'utilisateurs Cognito, vous devez créer un client de pool utilisateur. Cela peut être fait via la CLI AWS ou la console de gestion. Voici des exemples de commandes pour créer un client de pool utilisateur à l'aide de la CLI AWS:
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
Cette commande crée un client de pool utilisateur nommé "MyuserPoolClient" et permet l'authentification via des jetons de rafraîchissement, qui ont une période de validité de 30 jours.
Maintenant que nous avons configuré le pool d'utilisateurs et le client, nous pouvons écrire du code PHP pour implémenter l'authentification utilisateur. Tout d'abord, vous devez présenter le SDK AWS pour PHP. Vous pouvez l'installer via Composer ou télécharger directement et introduire le code source SDK.
require 'vendor/autoload.php'; // Présenté AWS SDK for PHP Chargement automatique des fichiers
use Aws\CognitoIdentityProvider\CognitoIdentityProviderClient;
Ensuite, configurez les informations d'identification AWS Cognito Access. Remplacez `your_user_pool_id`,` your_user_pool_client_id` et `your_aws_region` dans le code suivant pour vos valeurs réelles:
$poolId = 'YOUR_USER_POOL_ID';
$clientId = 'YOUR_USER_POOL_CLIENT_ID';
$region = 'YOUR_AWS_REGION';
Ensuite, instanciez le cognitoidentityproviderClient et configurez les informations d'identification:
$client = new CognitoIdentityProviderClient([
'version' => 'latest',
'region' => $region
]);
$client->setCredentials([
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
]);
Vous pouvez désormais utiliser Cognito pour l'authentification. L'extrait de code suivant montre comment s'authentifier avec AWS Cognito:
$result = $client->adminInitiateAuth([
'UserPoolId' => $poolId,
'ClientId' => $clientId,
'AuthFlow' => 'ADMIN_NO_SRP_AUTH',
'AuthParameters' => [
'USERNAME' => 'testuser@example.com',
'PASSWORD' => 'P@ssw0rd'
]
]);
var_dump($result);
Dans le code ci-dessus, nous utilisons la méthode `AdministliniateAuth 'pour l'authentification. Veuillez remplacer le nom d'utilisateur »et le« mot de passe »par le nom d'utilisateur et le mot de passe réels. Après une vérification réussie, «$ result» contiendra les résultats de validation.
Grâce à cet article, nous apprenons à intégrer AWS Cognito dans PHP pour l'authentification des utilisateurs sécurisée. En créant des pools d'utilisateurs, en configurant des clients et en utilisant du code PHP pour activer l'authentification, nous sommes en mesure de fournir de puissantes capacités de gestion des utilisateurs pour les applications. AWS Cognito est une solution simple et sécurisée qui améliore la sécurité et la fiabilité de vos applications.