>PHP 프레임워크 >ThinkPHP >ThinkPHP6 SMS 인증코드 통합 : 휴대폰 인증 기능 구현

ThinkPHP6 SMS 인증코드 통합 : 휴대폰 인증 기능 구현

WBOY
WBOY원래의
2023-08-25 16:55:491547검색

ThinkPHP6 SMS 인증코드 통합 : 휴대폰 인증 기능 구현

ThinkPHP6 SMS 인증 코드 통합: 휴대폰 인증 기능 구현

머리말:
현대 사회에서 휴대폰은 사람들의 삶에 없어서는 안 될 도구 중 하나가 되었습니다. 웹사이트나 앱 개발에서 사용자 휴대폰 번호 확인도 일반적인 기능 요구 사항입니다. 이 기사에서는 휴대폰 인증 기능을 구현하기 위해 ThinkPHP6 프레임워크에 SMS 인증 코드 기능을 통합하는 방법을 소개합니다.

1. 준비

  1. ThinkPHP6 프레임워크가 설치되어 있는지 확인하거나 작곡가를 통해 설치할 수 있습니다
  2. Alibaba Cloud, Tencent Cloud, Yunpian 등 SMS 서비스 제공업체에 계정을 등록하고 구매하세요. 관련 SMS 메시지 서비스 패키지

2. 통합 SMS 인증 코드 기능

  1. SMS 발송 확장 패키지 설치
    SMS 발송 확장 패키지를 설치하려면 ThinkPHP6 프로젝트 루트 디렉터리에서 다음 명령어를 실행하세요:
    composer require overtrue/ easy-sms -vvv
  2. SMS 서비스 구성
    프로젝트 루트 디렉터리 아래 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. 인증코드 전송 클래스 생성
    공통에서 app 디렉터리 아래에 확인 코드를 보내는 데 사용되는 새 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. 확인 코드 전송 클래스를 호출합니다.
    확인 코드를 보내야 하는 경우 Sms 클래스의 sendCode 메서드를 호출하여 인증코드:
<?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. 요약
위의 단계를 통해, ThinkPHP6 프레임워크에 SMS 인증 코드 기능을 성공적으로 통합하고 휴대폰 인증 기능을 구현했습니다. 사용자가 휴대폰 인증이 필요한 경우, 사용자가 인증을 위해 올바른 인증코드를 입력할 수 있도록 인증코드를 전송할 수 있습니다. 이를 통해 사용자 로그인, 등록, 중요 정보 수정 등의 작업에 대한 보안을 강화할 수 있습니다.

마지막으로 SMS 서비스 패키지를 구매할 때 리소스와 비용 낭비를 피하기 위해 실제 필요에 따라 선택한다는 점에 유의해야 합니다. 또한 악성 문자 메시지 전송을 방지하기 위해 일반적으로 분당 특정 개수의 문자 메시지만 보낼 수 있거나 하루에 특정 개수의 문자 메시지만 보낼 수 있는 등 일반적으로 특정 제한 사항이 있습니다. 실제 사용 시에는 SMS 서비스 제공업체의 규정 및 구성에 따라 SMS 인증코드 기능을 사용할 수 있도록 주의하시기 바랍니다.

위 내용은 ThinkPHP6 SMS 인증코드 통합 : 휴대폰 인증 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.