ホームページ  >  記事  >  バックエンド開発  >  PHP は SMS 検証コードの自動有効期限検証を実装します

PHP は SMS 検証コードの自動有効期限検証を実装します

PHPz
PHPzオリジナル
2023-09-13 09:00:34746ブラウズ

PHP は SMS 検証コードの自動有効期限検証を実装します

PHP は SMS 検証コードの自動有効期限検証を実装します

インターネット技術の発展に伴い、SMS 検証コードはユーザーのセキュリティなどの重要な業務で一般的に使用されるセキュリティ方法になりました。登録とログイン、検証手段。 SMS 認証コードの有効期限は非常に重要なセキュリティ対策であり、有効期限を確認することで認証コードの有効性が保証され、ユーザーのプライバシーとアカウントのセキュリティが保護されます。この記事では、PHP 言語を使用して SMS 検証コードの自動有効期限検証を実装する方法と、具体的なコード例を紹介します。

  1. データベース テーブル構造の設計

まず、SMS 確認コードに関連する情報を保存するデータ テーブルを設計する必要があります。この情報には、携帯電話番号、認証コード、生成時間、有効期限などが含まれます。簡単な設計例を次に示します。

CREATE TABLE sms_verification (
id int(11) NOT NULL AUTO_INCREMENT,
phone varchar(20) NOT NULL,
code varchar(6) NOT NULL,
generate_time int(11) NOT NULL,
expiry_time int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  1. SMS 確認コードを生成して送信する

ユーザーが SMS 検証コードの送信を要求した場合、ランダムな検証コードを生成してデータベースに保存する必要があります。同時に、検証コードの生成時刻と有効期限を記録する必要があります。以下はサンプル関数です:

function sendSMSVerificationCode($phone) {

// 生成随机的验证码
$code = rand(100000, 999999);
$generateTime = time();
$expiryTime = $generateTime + 600; // 验证码有效期为10分钟

// 将验证码信息存入数据库
$sql = "INSERT INTO sms_verification (phone, code, generate_time, expiry_time) VALUES ('$phone', '$code', '$generateTime', '$expiryTime')";
// 执行插入操作,这里假设使用PDO预处理语句来防止SQL注入
// ...

// 调用短信接口发送验证码
// ...

// 返回生成的验证码
return $code;

}

  1. Verification SMS 確認コード

ユーザーがログインまたは登録のために確認コードを送信するとき、その確認コードが有効かどうかを確認する必要があります。同時に、確認コードの有効期限が切れているかどうかも確認する必要があります。以下はサンプル関数です:

function verifySMSVerificationCode($phone, $code) {

// 查询数据库中的验证码信息
$sql = "SELECT * FROM sms_verification WHERE phone='$phone' ORDER BY generate_time DESC LIMIT 1";
// 执行查询操作,这里假设使用PDO预处理语句来防止SQL注入
// ...

// 获取查询结果
$verificationInfo = $stmt->fetch(PDO::FETCH_ASSOC);

// 如果查询结果为空,则验证码无效
if (!$verificationInfo) {
    return false;
}

// 检查验证码是否已经过期
if (time() > $verificationInfo['expiry_time']) {
    return false;
}

// 检查验证码是否匹配
if ($code != $verificationInfo['code']) {
    return false;
}

// 验证通过,删除数据库中的验证码信息
$sql = "DELETE FROM sms_verification WHERE id={$verificationInfo['id']}";
// 执行删除操作
// ...

return true;

}

上記のコード例を通じて、SMS の自動期限切れを実現します。検証コード 検証機能。検証コードを送信すると、ランダムな検証コードが生成され、データベースに保存されます。同時に、認証コードの生成時刻と有効期限も記録します。ユーザーが検証のために検証コードを送信すると、データベースから検証コード情報を照会し、検証コードの有効期限が切れているかどうか、および一致しているかどうかを確認します。

実際のアプリケーションでは、データベース エラーやテキスト メッセージの送信失敗など、いくつかの異常な状況にも対処する必要があることに注意してください。さらに、セキュリティを向上させるために、SMS 送信頻度の制限、確認コードのエラー制限など、いくつかの追加の確認メカニズムを追加することもできます。

要約すると、PHP を使用して SMS 検証コードの自動有効期限検証を実装するのは、比較的簡単な操作です。データベース テーブル構造を適切に設計し、適切なコード ロジックを使用することで、より安全で信頼性の高い検証コード検証機能を提供し、ユーザー アカウントのセキュリティとプライバシーを保護できます。

以上がPHP は SMS 検証コードの自動有効期限検証を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。