PHP 핸드폰 문자 인증 코드 구현 절차 상세 설명
구름 조각을 사용 하 는 문자 서비스 제공 자 는 물론 구체 적 인 문자 서비스 제공 자 는 자 유 롭 게 선택 할 수 있다.
1.실현 절차
핸드폰 번 호 를 입력 하고 클릭 하여 인증 번 호 를 받 습 니 다.
정확 한 문자 인증 코드 를 제출 한 후 등록 완료
2.실현 사고 지도
3.클 라 우 드 등록 및 개발 정보 인증,템 플 릿 설정,여 기 는 상세 하 게 전개 되 지 않 습 니 다.
4.easy-sms 를 설치 하고 easy-sms 는 안정 초 가 쓴 문자 발송 구성 요소 입 니 다.이 구성 요 소 를 이용 하여 우 리 는 문자 발송 기능 을 신속하게 실현 할 수 있 습 니 다.
composer require "overtrue/easy-sms"
//
touch config/easysms.php
그리고 easysms.php 파일 에 다음 내용 을 추가 합 니 다.
<?php
return [
'timeout'=>5.0,
'default'=>[
// , :
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
//
'gateways' => [
'yunpian',
],
],
//
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => env('YUNPIAN_API_KEY'),
],
],
];
그리고 ServiceProvider 를 만 듭 니 다.
php artisan make:provider EasySmsServiceProvider
파일 수정app/providers/EasySmsServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Overtrue\EasySms\EasySms;
class EasySmsServiceProvider extends ServiceProvider
{
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->singleton(EasySms::class,function ($app){
return new EasySms(config('easysms'));
});
$this->app->alias(EasySms::class,'easysms');
}
}
마지막 으로 config/app.php 를 열 어 providers 에 App\Providers\EasySmsServiceProvider::class 를 추가 합 니 다.5,구름 조각 획득 APIKEY
.env 에 YUNPIAN 설정API_KEY,다음 키 로 바 꿔 야 합 니 다.
6.컨트롤 러 코드 인증 코드 가 져 오기(코드 와 key 를 캐 시 에 저장)
public function getVerificationCode($request)
{
if(FALSE === $this->validateApiRequest($request->all(),
['mobile' => 'required|regex:/^1[34578]\d{9}$/|unique:users'],[
'mobile.required'=>' ',
'mobile.regex'=>' ',
'mobile.unique'=>' '
])){
return false;
}
$mobile = trim($request->get('mobile'));
$code = str_pad(random_int(1,9999),4,0,STR_PAD_LEFT);
try{
$easySms->send($mobile,
['content'=>"【UKNOW】 {$code}。 , "] );
}catch(\GuzzleHttp\Exception\ClientException $exception){
$response = $exception->getResponse();
$result =json_decode($response->getBody()->getContents(),true);
$this->setMsg($result['msg']?? ' ');
return false;
}
$key = 'verificationCode'.str_random(15);
$expiredAt = now()->addMinutes(1);
Cache::put($key,['mobile'=>$mobile,'code'=>$code],$expiredAt);
return [
'verification_key'=>$key,
'expiredAt'=>$expiredAt->toDateTimeString(),
'verification_code'=>$code
];
}
7.비교 인증번호
public function userStore($mobile, $verification_key,$code,$password,$password_confirmation)
{
$params = [
'mobile'=>$mobile,
'verification_key'=>$verification_key,
'code'=>$code,
'password'=>$password,
'password_confirmation'=>$password_confirmation
];
//
if (
FALSE === $this->validateApiRequest($params, [
'mobile' => 'required|regex:/^1[34578]\d{9}$/|unique:users',
'code' => 'required',
'verification_key'=>'required',
'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required',
], [
'mobile.required' => ' ',
'mobile.regex' => ' ',
'mobile.unique' => ' ',
'code.required' => ' ',
'password.required' => ' ',
'password.min' => ' 6 ',
'password.confirmed' => ' ',
'password_confirmation.required'=>' ',
'verification_key.required'=>' '
])
) {
return false;
}
$verifyData = Cache::get($verification_key);
if( !$verifyData){
$this->setMsg(' ');
return false;
}
if(!hash_equals($code,(string)$verifyData['code'])){
$this->setMsg(' ');
return false;
}
Cache::forget($verification_key);
$user = User::create([
'mobile'=>$mobile,
'password'=>bcrypt($password)
]);
if(!$user){
$this->setMsg(' ');
return false;
}
return true;
}
이상 의 절 차 는 바로 휴대 전화 인증 코드 의 기본 절차 이다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.