【阿里云人机认证】:React + SpringBoot阿里云人机认证(滑块,图形等)
由于原代码已经提供了React和SpringBoot的集成示例,以下是核心逻辑的简化和代码实例。
React组件部分:
import React, { useState } from 'react';
import { Button, Input } from 'antd';
import { useRequest } from 'umi';
export default function Geetest() {
const [challenge, setChallenge] = useState('');
const [validate, setValidate] = useState('');
const [seccode, setSeccode] = useState('');
const { loading, run } = useRequest(url, {
manual: true,
onSuccess: (data) => {
if (data.status === 'success') {
// 验证成功,seccode可用于后续操作
}
},
});
const onSubmit = () => {
run({ challenge, validate, seccode });
};
return (
<div>
<Input value={challenge} onChange={(e) => setChallenge(e.target.value)} />
<Input value={validate} onChange={(e) => setValidate(e.target.value)} />
<Button onClick={onSubmit} loading={loading}>
提交
</Button>
</div>
);
}
SpringBoot Controller部分:
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/geetest")
public class GeetestController {
@PostMapping
public GeetestResponse submit(@RequestParam("challenge") String challenge,
@RequestParam("validate") String validate,
@RequestParam("seccode") String seccode) {
// 调用阿里云API进行验证
boolean success = GeetestSDKManager.getInstance().validate(challenge, validate, seccode);
return new GeetestResponse(success ? "success" : "fail");
}
}
class GeetestResponse {
private String status;
public GeetestResponse(String status) {
this.status = status;
}
// Getter and Setter
}
在SpringBoot端,你需要使用阿里云提供的GeetestSDKManager类来进行最终的验证。这里的GeetestSDKManager.getInstance().validate
应该替换为实际的阿里云人机验证SDK方法。
以上代码仅为示例,实际使用时需要配置正确的URL、处理异常等。在React组件中,你可以根据自己的需求对输入框和按钮进行样式调整。在SpringBoot Controller中,你需要处理好与阿里云API的交互,并且返回适当的响应。
评论已关闭