Laravel - 验证码(captcha)
- 本人感觉用的比较好的验证码包,拿出来分享一下,傻瓜式教程,大佬别喷。:smile: :smile: :smile:
- 安装步骤:
- 首先,登录网址packagist.org查找
laravel captcha,找到mews/captcha,根据packagist上的使用方法一步步来实现验证码的安装。 - composer安装:
composer require mews/captcha - 注册
providers (config/app.php),在这个数组中的最后追加如下代码:Mews\Captcha\CaptchaServiceProvider::class, - 注册
aliases (config/app.php),在这个数组中的最后追加如下代码:'Captcha' => Mews\Captcha\Facades\Captcha::class, - 生成配置文件,在Composer命令行中输入如下命令:
php artisan vendor:publish - 进入
config/captcha.php文件,修改default数组 可以对验证码进行样式、数量、大小上的修改。'default' => [ 'length' => 5, 'width' => 100, 'height' => 34, 'quality' => 90, ],
- 首先,登录网址packagist.org查找
- 页面中使用:
<div class="row">
<div class="col-md-8">
<input type="text" class="form-control {{$errors->has('captcha')?'parsley-error':''}}" name="captcha" placeholder="captcha">
</div>
<div class="col-md-4">
<img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src='{{captcha_src()}}'+Math.random()">
</div>
@if($errors->has('captcha'))
<div class="col-md-12">
<p class="text-danger text-left"><strong>{{$errors->first('captcha')}}</strong></p>
</div>
@endif
</div>
- 点击图片刷新,如下代码:
<img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src='{{captcha_src()}}'+Math.random()">
-
重写AuthController 登录验证方法,并自定义提示信息:
-
首先要引入如下代码:
use Illuminate\Http\Request; -
重写validateLogin方法:
-
protected function validateLogin(Request $request){
$this->validate($request, [
$this->loginUsername() => 'required',
'password' => 'required',
'captcha' => 'required|captcha',
],[
'captcha.required' => trans('validation.required'),
'captcha.captcha' => trans('validation.captcha'),
]);
}
- 字体库的下载与切换:
- 首先需要下载字体库
- 下载完成后,将压缩包中 src/zh-CN 文件夹拷贝到项目目录的
resources/lang文件夹下。 - 修改
config->app.php文件,修改代码如下:'locale' => 'zh-CN',
- 由于
captcha在中文包中没有中文解释,所以需要手动添加中文解释,具体操作如下:- 打开
resources/zh-CN/validation.php,在总数组中追加如下键值对:'captcha' => ':attribute 不正确。', - 在 attributes 数组中追加如下键值对:
'captcha' => '验证码',
- 打开
本作品采用《CC 协议》,转载必须注明作者和本文链接
老郭博客:laughing:
个人博客地址:www.phpsix.com
本帖由系统于 7年前 自动加精
关于 LearnKu
怎么更换成全是数字的呢
不错 很详细
验证码一直有效,没有过期时间啊
为什么我的验证码出不来呢,服务器上的fileinfo 和gd 库有。。
@zhz17343048283 php artisan optimize
要更新路由的,不然路由报 404
验证码长度 在本地上修改成3位 为啥服务器上不行
前后端分离的api怎么写呢
你们遇到过一直验证失败的问题吗?非常奇怪!
怎么输入错误时,自动刷新验证码