Laravel-集成图片验证码

image.png

1. 基础的安装/用法请参照项目文档

github: https://github.com/mewebstudi...

2. api调用接口

http://localhost/captcha/api/math
math可以替换为配置文件的所定义的验证码类型
该接口返回json,主要使用两个参数key和img
key需要一同传递给后台做验证
img是图片base64 用作前端显示
后台验证

$rules = ['captcha' => 'required|captcha_api:'. request('key') . ',default'];
$validator = validator()->make(request()->all(), $rules);

3. 集成passport做登录验证

通过middleware方式拦截验证
创建CheckLoginCaptchaMiddleware中间件

path()==="oauth/token"){ // 判断是否是passport登录接口
            $check = validator($request->all(),[
                'captcha' => 'required|captcha_api:'. request('key') . ',login'
            ]);
            if(!$check->passes()){
                return response(["message"=>$check->errors()->first()],400);
            }
        }
        return $next($request);
    }
}

在Http/kernel.php

   protected $middleware = [
      ...
      \App\Http\Middleware\CheckLoginCaptchaMiddleware::class,
   ];

你可能感兴趣的:(laravel)