一篇介绍基于laravel框架实现短信验证码注册的demo文章。文章篇幅适中,适宜阅读,有不清楚的地方可以私信博主询问,谢谢大家:)
短信的服务商有很多,这里介绍云片,选择云片作为我们的短信服务商,注册成功后,会有 10 条短信的免费额度,但愿够了。
然后点击注册,注册账户
注册成功后,会要求填写姓名及公司名称,可以填写一下相关信息,学生可以填写班级或学校,使用一下而已,之后可能会有电话回访,不影响使用!
基本每个短信服务商都需要设置以及后才允许发送验证码,这一点每个短信服务商都大同小异
然后我们开始添加,签名一般都是跟随在短信的开始或者末尾的比如:
【云片网】云片网验证功能码:XXXXXXX
【云片网】就是签名
在添加或者之前,如果是还没有添加开发者信息,记得去添加
选个人然后提交证件照片即可,然后添加签名,等待通过审核
添加模板也是差不多的操作
然后我们需要利用composer安装一个组件,使用phpstorm的Terminal输入以下代码:
composer require “overtrue/easy-sms”
为了方便使用我们需要封装一下该组件的ServiceProvider
在config中添加easysms.php文件
也可以使用Terminal命令行添加:
touch config/easysms.php
然后填入如下内容
return [
// HTTP 请求的超时时间(秒)
'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'),
],
],
];
然后修改文件:app/providers/EasySmsServiceProvider.php
namespace App\Providers;
use Overtrue\EasySms\EasySms;
use Illuminate\Support\ServiceProvider;
class EasySmsServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application 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,
然后我们要获取key值
在 .env 中配置 YUNPIAN_API_KEY
YUNPIAN_API_KEY=*********
在 .env.example 中也要加入配置示例
YUNPIAN_API_KEY=
使用artisan调试一下
打开tinker
php artisan tinker
输入以下代码
$sms = app('easysms');
try {
$sms->send(111111, [
'content' => '【您的签名】您的验证码是1234。如非本人操作,请忽略本短信',
]);
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
$message = $exception->getException('yunpian')->getMessage();
dd($message);
}
注意将111111替换为您的手机号,
将 【您的签名】您的验证码是1234。如非本人操作,请忽略本短信 改成您的和
然后你可能会报如下错误
curl: (60) SSL certificate problem: unable to get local issuer certificate 错误
解决方法:这是因为缺少相关证书导致的,下载cacert .pem
然后打开php.ini文件
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "****"
将 **** 替换为你的 cacert .pem 的绝对路径即可
然后再次尝试如果返回乱码,就代表你成功了,返回乱码是因为编码问题,但是你的手机还是不会受到短信,因为乱码的模板没有找到,但是你可以在云片的失败发送里看到这个信息,这个时候新建路由与方法,修改方法,再次测试即可!
成功了记得打赏点积分一篇介绍基于laravel框架实现短信验证码注册的demo文章。文章篇幅适中,适宜阅读,有不清楚的地方可以私信博主询问,谢谢大家:)
更多前端技术文章
、美术设计
、wordpress插件、优化教程
、学习笔记
尽在我的个人博客喵容 - 和你一起描绘生活,欢迎一起交流学习,一起进步:http://www.miaoroom.com
「前端进阶」史上最全的前端学习路线
「不要重复造轮子系列」 前端常用插件、工具类库汇总
如何保障前端项目代码质量
记录一次基于vue、typescript、pwa的项目由开发到部署
小程序挖坑之路
原文链接:laravel框架:手机验证注册,短信提供商