Rumah >pembangunan bahagian belakang >tutorial php >Melaksanakan pengesahan keselamatan PHP menggunakan Kumpulan Pengguna AWS Cognito

Melaksanakan pengesahan keselamatan PHP menggunakan Kumpulan Pengguna AWS Cognito

WBOY
WBOYasal
2023-07-25 14:37:321763semak imbas

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:

  1. Pendaftaran pengguna dan log masuk.
  2. Terlupa kata laluan dan tetapkan semula kata laluan.
  3. Sahkan alamat e-mel pengguna.
  4. Jana token akses dan muat semula token.

Prasyarat:

  1. Akaun AWS.
  2. Kolam Pengguna AWS Cognito telah dibuat dan dikonfigurasikan.

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!

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