SaobbyCAPTCHA是一个人机验证服务,它可以准确识别机器人爬虫,不让烦人的机器人程序给你的网络表单提交垃圾信息。
使用SaobbyCAPTCHA较为简单,您只需要稍稍修改一下您的前端代码,添加验证码的窗口和JS代码,并在后端验证前端传来的密钥即可。
您可以去SaobbyCAPTCHA主页查看示例(感谢WuX-UI),如果您觉得我做的验证码窗口太丑(事实上大部分人都是这么认为的),您也可以利用下文中的API自己做一个验证码窗口。
- API URL:
https://captcha.saobby.tk/api/get_image - 请求方式:
POST - 请求载荷:
无
- 响应数据类型:
JSON - 响应包含参数:
captcha_id: 类型:字符串: 验证码唯一ID,获取验证码token时会用到captcha_img: 类型:字符串: 验证码图片Base64值,可直接塞进<img>标签的src属性中captcha_lens: 类型:整型数: 验证码的字数tip_img: 类型:字符串: 验证码提示文字图片Base64
- 响应示例:
- {
- "captcha_id":"GBXiOvIfJ30Kn9Stn0H5DxCgT6d3aVTAXysMhF9D91n7NGDQyRUcf3t1CYRE4leu",
- "captcha_img":"data:image/png;base64,iVBORw0KGgoAAAAN......",
- "captcha_lens":5,
- "tip_img":"..."
- }
- API URL:
https://captcha.saobby.tk/api/get_token - 请求方式:
POST - 请求载荷类型:
表单数据 - 请求载荷参数:
id: 上文中API返回的验证码的唯一IDpos: 用户点击坐标(图片左上角为坐标原点,坐标1单位长度对应图片中1像素),格式:第1个字的x坐标,第1个字的y坐标,第2个字的x坐标,第2个字的y坐标,...第n个字的x坐标,第n个字的y坐标,(注意每个坐标值之间用英文逗号隔开)
- 请求载荷示例:
id=bMeH04C5aXb5v2JpDwzQrA7AM7iOYlSJ1tQJNoX7WaKKIKqRHUHfiLX0usHPsfTq&pos=218,105,155,115,117,137,160,182,214,152,245,143,245,65,
- 响应数据类型:
JSON - 响应包含参数:
validity: 类型:布尔: 传来的信息是否有效?有效为true,否则为falsetoken: 类型:字符串: 验证码密钥message: 类型:字符串: 展示给用户的消息
- 响应示例:
- {
- "validity": false,
- "message": "\u9a8c\u8bc1\u7801\u9519\u8bef",
- "token": null
- }
- API URL:
https://captcha.saobby.tk/api/check_token - 请求方式:
POST - 请求载荷类型:
表单数据 - 请求载荷参数:
s-captcha-token: 前端传来的验证码密钥
- 请求载荷示例:
s-captcha-token=ovr7XEpDMlYE8j6svwJueqJHna1BV9ozwWdjA1WI1OzwPBQb2uOnIgu29LiJekr5
- 响应数据类型:
JSON - 响应包含参数:
validity: 类型:布尔: 传来的密钥是否有效?有效为true,否则为falsemessage: 类型:字符串: 消息
- 响应示例:
- {
- "validity": true,
- "message": null
- }
如果你发现了Bug或者有任何建议,请在这个仓库给我发issue!
