• laravel验证码扩展包gregwar/captcha的使用


    1.平时做后台登陆的时候一般情况都少不了验证码的功能自己开发很费时间所以今天提供一个第三方的扩展包

    首先提供扩展包地址:点我

    2.composer安装:

    composer require gregwar/captcha
    

    3.为了方便这里只演示一下功能:

    • 路由
    Route::get('/captchaShow', 'CaptController@captchaShow');
    Route::post('/checkCapt', 'CaptController@checkCapt');
    
    • 控制器代码
    
    namespace AppHttpControllers;
    
    use GregwarCaptchaCaptchaBuilder;
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesSession;
    
    class CaptController extends Controller
    {
        //生成图片与验证码
        public function captchaShow()
        {
            //生成验证码图片的Builder对象,配置相应属性
            $builder = new CaptchaBuilder();
            // 设置背景颜色
            $builder = new CaptchaBuilder();
            // 设置背景颜色
            $builder->setBackgroundColor(220, 210, 230);
            $builder->setMaxAngle(25);
            $builder->setMaxBehindLines(0);
            $builder->setMaxFrontLines(0);
            //可以设置图片宽高及字体
            $builder->build($width = 100, $height = 50, $font = null);
            //获取验证码的内容,并转化为小写
            $phrase = strtolower($builder->getPhrase());
            //把内容存入session
    //        session(['phrase' => $phrase]);
            Session::put('phrase', $phrase);
            //生成图片
            header("Cache-Control: no-cache, must-revalidate");
            header('Content-Type: image/jpeg');
            $builder->output();
        }
    
        public function checkCapt(Request $request)
        {
            $data = $request->except('_token');
    //        dd(Session::get('phrase'))  ;
    //        die();
            if (strtolower(Session::get('phrase')) ==strtolower( $data['captcha'])) {
                Session::forget('phrase');
                return '验证码正确';
            } else {
                //用户输入验证码错误
                return '验证码输入错误';
            }
    
        }
    }
    
    
    • 视图层代码
    <form method="post" action="{{url('/checkCapt')}}" class="layui-form">
            {{csrf_field()}}
            <input name="captcha" lay-verify="required" type="text" class="layui-input" placeholder="验证码" style="200px">
            <img src="{{url('/captchaShow')}}" onclick="this.src='/captchaShow?'+Math.random()" alt="" style="margin-left: 213px;
        margin-top: -68px;cursor: pointer">
            <hr class="hr15">
            <input value="登录" lay-submit lay-filter="login" style="100%;" type="submit">
            <hr class="hr20">
        </form>
    

    4.由于演示结果如图所示(我由于懒得写前端代码所以用了X-admin提供的后台模板 "验证示例")
    示例图片
    示例

  • 相关阅读:
    LeetCode 1748. 唯一元素的和
    LeetCode 2047. 句子中的有效单词数
    LeetCode 1345. 跳跃游戏 IV
    LeetCode 1725. 可以形成最大正方形的矩形数目
    LeetCode 1765. 地图中的最高点
    LeetCode 2034. 股票价格波动
    LeetCode 1996. 游戏中弱角色的数量
    LeetCode 2013. 检测正方形
    LeetCode 1219. 黄金矿工
    LeetCode 2045. 到达目的地的第二短时间
  • 原文地址:https://www.cnblogs.com/yaoliuyang/p/12638792.html
Copyright © 2020-2023  润新知