Laravel 中使用 vaptcha 手势验证码

Vaptcha 是最近才出现的一种新型的手势验证码,蛮有趣的,记录一下使用方法。
官网地址 https://www.vaptcha.com/

准备工作,获取 vid 与 key#

根据文档说明,使用需要在后台创建一个验证单元,如下图所示,其中有选项里面有个验证场景,感觉描述的不是很清楚,感觉大概的意思就是可以给某个场景做统计,比如登录场景。
file
创建成功之后,会的到如下图所示的 vid 与 key,后面再使用的时候会用到。
file

后端开发接口#

安装#

按照 github 的文档来,使用 composer 安装:

composer require Vaptcha/vaptcha-sdk;

创建路由控制器#

根据文档这里需要两个接口供前端使用,一个是获取 vidchallenge,用于在客户端初始化实例,第二个是宕机模式,虽然不知到时是啥,反正照着写就行了 2333。
sdk 也提供了对应的两个接口 ,其中 getChallenge 接口,有个 $sceneId 参数,就是对应之前的验证场景。路设计如下

Route::get('vaptcha/challenge', 'VaptchaController@getChallenge');
Route::get('vaptcha/downtime', 'VaptchaController@getDownTime');

创建控制器:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Vaptcha\Vaptcha;

class VaptchaController extends Controller
{

    private $vaptcha;

    public function __construct(){
        $this->vaptcha = new Vaptcha('vid', 'key'); // 这里替换成前面获取到的vid与key
    }

    public function response($status, $msg, $data){
        return response()->json([
            'status' =>  $status,
            'msg' => $msg,
            'data' => $data
        ], $status);
    }

    public function responseSuccess($data){
        return $this->response(200, 'success', $data);
    }

    public function getChallenge(Request $request){
        $data = json_decode($this->vaptcha->getChallenge($request->sceneid));
        return $this->responseSuccess();
    }

    public function getDownTime(Request $request) {
        $data = json_decode($this->vaptcha->downTime($request->data));
        return response()->json($data);    
    }
}

访问接口,成功获取到数据
file

前端使用 vaptcha#

直接复制文档中的配置,改一下 ok

代码已被折叠,点此展开

成功显示
file

本帖已被设为精华帖!
本帖由 Summer 于 7年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 18