>  기사  >  백엔드 개발  >  PHP를 사용하여 SMS 인증 코드 기능을 구현하는 방법

PHP를 사용하여 SMS 인증 코드 기능을 구현하는 방법

PHPz
PHPz원래의
2023-09-05 15:51:222070검색

如何使用 PHP 实现手机短信验证码功能

PHP를 사용하여 SMS 확인 코드 기능을 구현하는 방법

SMS 확인 코드는 현재 일반적으로 사용되는 신원 확인 방법입니다. 계정 등록, 비밀번호 검색, 결제 등 SMS 확인 코드는 역할을 합니다. 역할을 합니다. PHP를 사용하여 휴대폰 SMS 인증 코드 기능을 구현하는 것은 비교적 간단합니다. 다음에서는 구현 단계를 자세히 소개하고 참조용 코드 샘플을 제공합니다.

1. SMS 인터페이스 구성 정보 얻기

SMS 인증 코드 기능을 구현하기 전에 Alibaba Cloud, Tencent Cloud 등과 같은 SMS 인터페이스 제공업체의 계정을 얻어야 합니다. 구성 정보를 얻기 위해 인터페이스 공급자 또는 자습서에서 제공하는 문서입니다. 일반적으로 다음 정보를 구성해야 합니다.

  1. SMS API의 URL: SMS 메시지를 보내는 데 사용되는 인터페이스 주소입니다.
  2. 액세스 키 ID 및 액세스 키 비밀: 인증 및 신원 인증에 사용되는 키입니다.
  3. 서명: "[회사 이름]"과 같이 문자 메시지에 표시하는 데 사용되는 보낸 사람 식별 정보입니다.

구성 정보를 얻은 후 SMS 인증 코드 기능을 구현하는 코드 작성을 시작할 수 있습니다.

2. PHP를 사용하여 SMS 인증 코드 보내기

//PHP SDK 소개
require_once 'aliyun-php-sdk-core/Config.php';

function sendSmsCode($phoneNumber) {

// 短信 API 的 URL
$url = 'http://XXXXX';

// Access Key ID 和 Access Key Secret
$accessKeyId = 'XXXXX';
$accessKeySecret = 'XXXXX';

// 签名
$signName = '【公司名】';

// 生成6位随机验证码
$code = rand(100000, 999999);

// 短信模板
$templateCode = 'SMS_XXXXX';
$templateParam = array(
    'code' => $code,
);

$params = array(
    'AccessKeyId' => $accessKeyId,
    'Action' => 'SendSms',
    'Format' => 'JSON',
    'PhoneNumbers' => $phoneNumber,
    'SignName' => $signName,
    'TemplateCode' => $templateCode,
    'TemplateParam' => json_encode($templateParam),
    'Timestamp' => gmdate("Y-m-dTH:i:sZ"),
    'Version' => '2017-05-25',
    'SignatureMethod' => 'HMAC-SHA1',
    'SignatureNonce' => uniqid(),
    'SignatureVersion' => '1.0',
);

ksort($params);

$canonicalizedQueryString = '';
foreach ($params as $key => $value) {
    $canonicalizedQueryString .= '&' . rawurlencode($key) . '=' . rawurlencode($value);
}

$stringToSign = 'GET' . '&%2F&' . rawurlencode(substr($canonicalizedQueryString, 1));

$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true));

$url .= '?' . $canonicalizedQueryString . '&Signature=' . rawurlencode($signature);

// 发送短信
$result = file_get_contents($url);

// 解析短信发送结果
$resultObject = json_decode($result, true);
if ($resultObject['Code'] == 'OK') {
    // 短信发送成功
    return $code;
} else {
    // 短信发送失败
    return false;
}

}

//SMS 인증코드 전송 함수 호출
$phoneNumber = '휴대폰번호';
$code = sendSmsCode($phoneNumber);
if ($code) {

echo '验证码已发送至手机号' . $phoneNumber . ',请查收';

} else {

echo '验证码发送失败,请稍后再试';

}
?> ;

위 코드는 SMS 인증코드를 보내는 간단한 예시인데, 실제 상황에 따라 해당 구성정보를 교체해야 합니다. 실제 사용 시에는 관리 및 수정이 용이하도록 구성 정보를 구성 파일에 저장하는 것이 좋습니다.

요약

위 단계를 통해 PHP를 사용하여 SMS 인증 코드 기능을 구현할 수 있습니다. 사용자가 인증코드를 요청하면 인터페이스 제공자의 API를 통해 문자 메시지를 보내고 사용자에게 인증코드를 반환합니다. 사용자가 인증 코드를 입력하면 서버는 이를 검증하여 사용자의 신원과 작업의 적법성을 보장할 수 있습니다. 실제 프로젝트에서는 더 나은 사용자 경험과 보안을 제공하기 위해 SMS 인증 코드 만료 시간 추가, 빈번한 전송 방지 등 필요에 따라 확장할 수 있습니다.

위 내용은 PHP를 사용하여 SMS 인증 코드 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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