Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengesahan keselamatan PHP dengan AWS Cognito

Pengesahan keselamatan PHP dengan AWS Cognito

PHPz
PHPzasal
2023-07-26 14:54:26890semak imbas

Pengesahan Keselamatan PHP dengan AWS Cognito

AWS Cognito ialah perkhidmatan pengesahan dan kebenaran pengguna yang membantu pembangun dengan mudah melaksanakan pengurusan pengguna dan fungsi pengesahan untuk aplikasi. Dalam artikel ini, kita akan mempelajari cara menggunakan AWS Cognito dengan PHP untuk melaksanakan fungsi pengesahan keselamatan. Kami akan menunjukkan langkah pelaksanaan khusus dengan menulis contoh kod.

Prasyarat
Untuk berjaya melaksanakan fungsi yang diterangkan dalam artikel ini, anda perlu memenuhi prasyarat berikut:

  1. Mempunyai akses kepada akaun AWS dan AWS CLI (Antara Muka Talian Perintah
  2. Perkhidmatan AWS Cognito telah dikonfigurasikan dan diaktifkan.

Langkah 1: Buat Kumpulan Pengguna
Pertama, kami perlu mencipta kumpulan pengguna dalam AWS Cognito untuk menyimpan dan mengurus bukti kelayakan pengguna kami dan maklumat lain yang berkaitan. Anda boleh menggunakan AWS CLI atau AWS Management Console untuk membuat kumpulan pengguna. Berikut ialah contoh arahan untuk mencipta kumpulan pengguna menggunakan 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

Arahan di atas akan mencipta kumpulan pengguna bernama MyUserPool dengan pengesahan e-mel didayakan dan kata laluan yang mesti sepadan dengan peraturan yang ditentukan.

Langkah 2: Sediakan Klien Pool Pengguna
Seterusnya, kita perlu mencipta Klien Kolam Pengguna untuk aplikasi kita supaya kita boleh menggunakan klien ini untuk pengesahan pengguna dalam aplikasi. Anda boleh menggunakan AWS CLI atau AWS Management Console untuk mencipta klien kumpulan pengguna. Berikut ialah contoh arahan untuk mencipta klien kumpulan pengguna menggunakan 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

Arahan di atas akan mencipta klien kumpulan pengguna bernama MyUserPoolClient dan membenarkan pengesahan menggunakan token muat semula, yang sah selama 30 hari.

Langkah 3: Kod PHP untuk melaksanakan pengesahan
Sekarang kami telah mencipta kumpulan pengguna dan klien kumpulan pengguna, seterusnya, kami akan menulis kod PHP untuk melaksanakan fungsi pengesahan.

Pertama, kami perlu memperkenalkan AWS SDK untuk PHP. Anda boleh memasangnya melalui komposer, atau memuat turun terus dan mengimport kod sumber AWS SDK untuk PHP.

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

Kemudian, kita perlu mengkonfigurasi kelayakan akses AWS Cognito. Anda boleh mendapatkan maklumat ID kumpulan pengguna, ID klien kumpulan pengguna dan Wilayah AWS anda dalam Konsol Pengurusan AWS dan menggantikan nilai yang sepadan dalam kod di bawah.

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

Seterusnya, kita perlu membuat instantiate CognitoIdentityProviderClient dan menetapkan konfigurasi yang sesuai.

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

Kini, kami bersedia untuk mengesahkan. Coretan kod berikut menunjukkan cara untuk mengesahkan dengan 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);

Dalam kod di atas, kami menggunakan pembolehubah adminInitiateAuth 方法进行身份验证。您需要替换 'USERNAME''PASSWORD' 的值为您的实际用户名和密码。成功验证后,$result untuk mengandungi hasil pengesahan.

Kesimpulan
Melalui artikel ini, kami mempelajari cara menggunakan AWS Cognito untuk melaksanakan fungsi pengesahan keselamatan PHP. Kami melakukan ini dengan mencipta kumpulan pengguna dan klien kumpulan pengguna dan kemudian menggunakan kod PHP untuk pengesahan. AWS Cognito menyediakan cara yang mudah tetapi berkuasa untuk mengurus bukti kelayakan pengguna dan melaksanakan pengesahan, menjadikan aplikasi kami lebih selamat dan boleh dipercayai.

Atas ialah kandungan terperinci Pengesahan keselamatan PHP dengan AWS Cognito. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn