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中间件
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckLoginCaptchaMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$response = $next($request);
if($request->path()==="oauth/token"){
$check = validator($request->all(),[
'captcha' => 'required|captcha_api:'.request('captcha_key').',login'
]);
if(!$check->passes()){
return response(["message"=>$check->errors()->first()],400);
}
if($response->status() == 400){
$rdata = json_decode($response->content());
return response([
"message"=>trans("auth.failed"),
"error"=>$rdata->error,
"error_description"=>$rdata->error_description,
"hint"=>$rdata->hint,
],$response->status());
}
}
return $response;
}
}
在Http/kernel.php
protected $middleware = [
...
\App\Http\Middleware\CheckLoginCaptchaMiddleware::class,
];
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。