ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHP6 SMS認証コード統合:携帯電話認証機能を実現

ThinkPHP6 SMS認証コード統合:携帯電話認証機能を実現

WBOY
WBOYオリジナル
2023-08-25 16:55:491547ブラウズ

ThinkPHP6 SMS認証コード統合:携帯電話認証機能を実現

ThinkPHP6 SMS認証コード統合:携帯電話認証機能の実現

まえがき:
現代社会において、携帯電話は人々の生活に欠かせないツールの一つとなっています。 。 1つ。 Web サイトやアプリの開発では、ユーザーの携帯電話番号の検証も一般的な機能要件です。この記事では、ThinkPHP6 フレームワークに SMS 認証コード機能を統合し、携帯電話認証機能を実現する方法を紹介します。

1. 準備

  1. ThinkPHP6 フレームワークがインストールされていることを確認するか、composer を通じてインストールできます
  2. SMS サービス プロバイダーにアカウントを登録します。 Alibaba Cloud、Tencent Cloud、Cloud Pian などの SMS サービス パッケージを購入し、関連する SMS サービス パッケージを購入します

2. SMS 認証コード機能を統合します

  1. SMS 送信拡張機能をインストールしますpackage
    ThinkPHP6 プロジェクトのルート ディレクトリで次のコマンドを実行して、SMS 送信拡張機能パッケージをインストールします。
    composer require overtrue/easy-sms -vvv
  2. Configure SMS service
    プロジェクトのルート ディレクトリに config ディレクトリを作成し、新しい sms.php ファイルを作成し、次の設定を追加します。
return [
    'default' => [
        'gateways' => [
            'aliyun',  // 阿里云短信服务
        ],
    ],
    'gateways' => [
        'aliyun' => [
            'access_key_id' => 'your-access_key_id',  // 你的阿里云access_key_id
            'access_key_secret' => 'your-access_key_secret',  // 你的阿里云access_key_secret
            'sign_name' => 'your-sign_name',  // 你的短信签名名称
        ],
    ],
];
  1. 検証コード送信クラスを作成します
    common ディレクトリにアプリ ディレクトリで、検証コードを送信するための新しい Sms クラスを作成します。
<?php
namespace appcommon;

use thinkacadeCache;
use thinkacadeConfig;

class Sms
{
    // 发送验证码
    public static function sendCode($phoneNumber)
    {
        // 生成随机验证码
        $code = mt_rand(100000, 999999);
        
        // 发送短信
        $result = EasySmsFacadesEasySms::send($phoneNumber, [
            'template' => 'your-template-id',  // 你在短信服务提供商处创建的短信模板ID
            'data' => [
                'code' => $code,
            ],
        ]);
        
        // 验证码存入缓存,有效时间为5分钟
        Cache::set('sms_code:' . $phoneNumber, $code, 300);
        
        return $result;
    }
}
  1. 検証コード送信クラスを呼び出します。
    検証コードを送信する必要がある場合は、次の sendCode メソッドを呼び出します。 Sms クラスを使用して検証コードを送信します。
<?php
namespace appindexcontroller;

use appcommonSms;

class User
{
    public function sendSmsCode()
    {
        $phoneNumber = '手机号码';
        Sms::sendCode($phoneNumber);
    }
}
  1. 検証検証コード
    ユーザーが入力した検証コードを検証する必要がある場合は、次の方法で検証できます。
<?php
namespace appindexcontroller;

use thinkacadeCache;

class User
{
    public function checkCode()
    {
        $phoneNumber = '手机号码';
        $code = '用户输入的验证码';
        
        // 从缓存中获取正确的验证码
        $correctCode = Cache::get('sms_code:' . $phoneNumber);
        
        // 验证用户输入的验证码是否正确
        if ($code == $correctCode) {
            // 验证通过
            // 进行相关操作
        } else {
            // 验证失败
            // 提示用户验证码错误
        }
    }
}

3. 概要
合格 上記の手順で、SMS 認証コード機能を ThinkPHP6 フレームワークに統合し、携帯電話認証機能を実装することができました。ユーザーが携帯電話認証を行う必要がある場合、ユーザーは認証のために正しい認証コードを入力できるように、認証コードを送信できます。これにより、ユーザーのログインや重要な情報の登録・変更などの操作のセキュリティを高めることができます。

最後に、SMS サービス パッケージを購入する場合は、リソースとコストの無駄を避けるために、実際のニーズに応じて選択してください。さらに、悪意のあるテキスト メッセージの送信を防ぐために、通常、1 分あたり特定の数のテキスト メッセージしか送信できない、1 日あたり特定の数のテキスト メッセージしか送信できないなど、特定の制限があります。実際のご利用にあたっては、SMS サービスプロバイダーの規定や設定に従って SMS 認証コード機能を利用するように注意してください。

以上がThinkPHP6 SMS認証コード統合:携帯電話認証機能を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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