Comment utiliser AWS Cognito avec Laravel
AWS Cognito est un puissant service qui fournit l’authentification et l’autorisation des utilisateurs pour vos applications. Combiné à Laravel, vous pouvez facilement intégrer Cognito dans votre projet Laravel pour gérer les utilisateurs et l’authentification. Voici comment utiliser AWS Cognito avec Laravel :
Configurer AWS Cognito
- Créez un compte AWS si vous n’en avez pas déjà un.
- Accédez à la console de gestion AWS et recherchez « Cognito » dans les services.
- Créez un nouveau groupe d’utilisateurs dans Cognito, qui sera utilisé pour gérer vos utilisateurs.
- Configurez les paramètres nécessaires pour votre groupe d’utilisateurs, tels que les exigences de mot de passe, la vérification par e-mail et l’authentification multi-facteurs.
- Une fois votre groupe d’utilisateurs configuré, notez l’« User Pool ID » et le « Client ID », car ils seront nécessaires dans la configuration Laravel.
Installer le package Laravel
-
Ouvrez votre projet Laravel dans un terminal et exécutez la commande suivante pour installer le package requis :
composer require aws/aws-sdk-php-laravel -
Une fois l’installation terminée, ouvrez le fichier
config/app.phpet ajoutez la ligne suivante au tableauproviders:'Aws\Laravel\AwsServiceProvider', -
Également dans le fichier
config/app.php, ajoutez la ligne suivante au tableaualiases:'AWS' => 'Aws\Laravel\AwsFacade',
Configurer Laravel
-
Ouvrez le fichier
.envà la racine de votre projet Laravel et ajoutez les lignes suivantes :AWS_ACCESS_KEY_ID=your_access_key_idAWS_SECRET_ACCESS_KEY=your_secret_access_keyAWS_DEFAULT_REGION=your_aws_regionAWS_COGNITO_USER_POOL_ID=your_user_pool_idAWS_COGNITO_CLIENT_ID=your_client_id -
Remplacez
your_access_key_id,your_secret_access_key,your_aws_region,your_user_pool_idetyour_client_idpar les valeurs correspondantes de votre groupe d’utilisateurs AWS Cognito.
Utiliser Cognito dans Laravel
-
Dans votre application Laravel, vous pouvez maintenant utiliser la facade
AWSpour interagir avec AWS Cognito. Par exemple, vous pouvez créer un nouvel utilisateur en appelant la méthodecreateUser:use Illuminate\Http\Request;use AWS;public function createUser(Request $request){$result = AWS::createUser(['UserPoolId' => config('app.AWS_COGNITO_USER_POOL_ID'),'Username' => $request->input('email'),'TemporaryPassword' => $request->input('password'),'MessageAction' => 'SUPPRESS','DesiredDeliveryMediums' => ['EMAIL']]);} -
Vous pouvez également utiliser la méthode
authenticatepour authentifier les identifiants d’un utilisateur :use Illuminate\Http\Request;use AWS;public function authenticate(Request $request){$result = AWS::authenticate(['UserPoolId' => config('app.AWS_COGNITO_USER_POOL_ID'),'ClientId' => config('app.AWS_COGNITO_CLIENT_ID'),'AuthFlow' => 'USER_PASSWORD_AUTH','AuthParameters' => ['USERNAME' => $request->input('email'),'PASSWORD' => $request->input('password')],]);}
En suivant ces étapes, vous pouvez intégrer AWS Cognito avec votre application Laravel et tirer parti de ses puissantes fonctionnalités de gestion des utilisateurs et d’authentification. Grâce à cette intégration, vous pouvez garantir un système de comptes sécurisé et efficace pour votre application sans avoir besoin d’un effort de développement ou de maintenance important.