使用方式
//import 'package:captcha/captcha/click_word_captcha.dart';
static void loadingClickWord(BuildContext context, {barrierDismissible = true}) {
showDialog<Null>(
context: context,
barrierDismissible: barrierDismissible,
builder: (BuildContext context) {
return ClickWordCaptcha(
onSuccess: (v){//成功回调(回调为加密后内容,依据项目而定)
},
},
);
},
);
}
//滑动拼图
//import 'package:captcha/captcha/block_puzzle_captcha.dart';
static void loadingBlockPuzzle(BuildContext context, {barrierDismissible = true}) {
showDialog<Null>(
context: context,
barrierDismissible: barrierDismissible,
builder: (BuildContext context) {
return BlockPuzzleCaptchaPage(
onSuccess: (v){ //成功回调(回调为加密后内容,依据项目而定)
onFail: (){
},
);
},
);
请求处理
{
"pointJson": cryptedStr,
"captchaType": "clickWord",
"token": _clickWordCaptchaModel.token
}
二次校验传出的参数
//如果不加密 将 token 和 坐标序列化 通过 --- 链接成字符串
var captchaVerification = "$captchaToken---$pointStr";
if(!ObjectUtils.isEmpty(secretKey)){
//如果加密 将 token 和 坐标序列化 通过 --- 链接成字符串 进行加密 加密密钥为 _clickWordCaptchaModel.secretKey
captchaVerification = EncryptUtil.aesEncode(key: secretKey, content: captchaVerification);