Menggunakan Kumpulan Pengguna AWS Cognito untuk melaksanakan pengesahan keselamatan PHP
Petikan:
Keselamatan ialah aspek penting apabila membangunkan aplikasi web. Pengesahan dan keizinan pengguna adalah komponen penting untuk memastikan pengguna hanya boleh mengakses kandungan yang mereka dibenarkan. Kumpulan Pengguna AWS Cognito ialah perkhidmatan pengesahan pengguna terurus sepenuhnya yang boleh membantu kami melaksanakan fungsi pengesahan pengguna dengan mudah. Artikel ini menerangkan cara melaksanakan pengesahan selamat menggunakan Kumpulan Pengguna AWS Cognito dan PHP.
Pengenalan fungsi:
Prasyarat:
Langkah 1: Buat Kumpulan Pengguna Cognito
Buat kumpulan pengguna baharu dalam konsol AWS. Konfigurasikan sifat kumpulan pengguna, seperti sifat pengguna dan dasar kata laluan, dan perhatikan ID kumpulan pengguna.
Langkah 2: Tambahkan PHP SDK
Muat turun dan pasang AWS SDK untuk PHP.
Langkah 3: Konfigurasikan bukti kelayakan akses AWS
Konfigurasikan bukti kelayakan akses AWS dalam kod PHP. Buat profil kelayakan AWS, namakannya credentials
dan tambah maklumat kelayakan pada fail.
[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
Langkah Empat: Laksanakan pendaftaran pengguna dan fungsi log masuk
use AwsCognitoIdentityProviderCognitoIdentityProviderClient; use AwsExceptionAwsException; $cognitoClient = new CognitoIdentityProviderClient([ 'region' => 'us-east-1', 'version' => 'latest' ]); // 用户注册 try { $signupResult = $cognitoClient->signUp([ 'ClientId' => 'YOUR_CLIENT_ID', 'Username' => 'user@example.com', 'Password' => 'P@ssw0rd', 'UserAttributes' => [ [ 'Name' => 'email', 'Value' => 'user@example.com' ], [ 'Name' => 'name', 'Value' => 'John Doe' ] ] ]); echo 'User registered successfully - ' . $signupResult['UserSub']; } catch (AwsException $e) { echo $e->getMessage(); } // 用户登录 try { $authResult = $cognitoClient->initiateAuth([ 'AuthFlow' => 'USER_PASSWORD_AUTH', 'ClientId' => 'YOUR_CLIENT_ID', 'AuthParameters' => [ 'USERNAME' => 'user@example.com', 'PASSWORD' => 'P@ssw0rd' ] ]); // 记下访问令牌和刷新令牌 $accessToken = $authResult['AuthenticationResult']['AccessToken']; $refreshToken = $authResult['AuthenticationResult']['RefreshToken']; echo 'User logged in successfully'; } catch (AwsException $e) { echo $e->getMessage(); }
Langkah Lima: Laksanakan tetapan semula kata laluan dan sahkan fungsi alamat e-mel
// 重置密码 try { $resetPasswordResult = $cognitoClient->forgotPassword([ 'ClientId' => 'YOUR_CLIENT_ID', 'Username' => 'user@example.com' ]); echo 'Password reset email sent successfully - ' . $resetPasswordResult['CodeDeliveryDetails']['Destination']; } catch (AwsException $e) { echo $e->getMessage(); } // 验证电子邮件地址 try { $verifyEmailResult = $cognitoClient->adminConfirmSignUp([ 'UserPoolId' => 'YOUR_USER_POOL_ID', 'Username' => 'user@example.com' ]); echo 'Email address verified successfully'; } catch (AwsException $e) { echo $e->getMessage(); }
Kesimpulan:
Menggunakan Kumpulan Pengguna AWS Cognito dan PHP, kami boleh melaksanakan Fungsi pengesahan pengguna dengan mudah. Contoh kod di atas menunjukkan pendaftaran pengguna biasa, log masuk, tetapan semula kata laluan dan mengesahkan fungsi alamat e-mel. Anda boleh melanjutkan lagi keupayaan ini untuk memenuhi keperluan aplikasi anda. Adalah menjadi tanggungjawab kami pembangun untuk memastikan keselamatan data pengguna. Saya harap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Melaksanakan pengesahan keselamatan PHP menggunakan Kumpulan Pengguna AWS Cognito. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!