分类: captcha业务

  • captcha业务接口

    本文下面的接口是图像验证码获取和核验的接口,与网站业务和授权业务技术栈无关,不影响原有业务,且无需appkey等参数

    调用流程:

    captcha接口用于获取验证码图像和ID,validate接口用于核验验证码

    一、captcha接口接口

    链接:/captcha/captcha.php

    必填请求参数:无

    示例返回:

    {
      "session_id": "c8203f6caa63b5db334a8f73d9fa974d",
      "captcha_image": "iVBORw0KGgoAA*******BJRU5ErkJggg=="
    }

    其中session_id是验证码ID,captcha_image是验证码图像base64编码之后的字符串

    二、validate接口

    这一接口会在用户授权成功后自动跳转至该链接,且自动挂载code和state参数。

    链接:/captcha/validate.php

    必填请求参数:

    • session_id:验证码ID
    • captcha:验证码

    示例返回:

    {"success":true}

    如果验证码错误则会返回:

    {"error":"验证码不正确"}

    核销的话,顾名思义,就是使用session_id去验证captcha是否正确,无论结果正确与否,session_id一旦核销则会立即删除,所以session_id只允许被核销一次。根据这个特性,建议在刷新验证码的时候先向服务器发送一个captcha的值为空的核销请求以确保安全

  • 更新日志

    2025.12.7

    • 更新了redirect.php页面的样式,增加了授权中、授权成功、授权失败三种不同状态下的动态显示效果
    • 增加了对重复请求回调的处理(主动报错)
    • 将链接有效期延长1分钟,11分钟之外的回调会被视为无效

    2025.12.10

    • 配置专门的本地sqlite来专注处理接口业务,并使用脚本定期将sqlite里面的数据同步至原有的mysql表,以此实现wordpress业务和核心接口业务的分离,增强系统稳健性
    • 增加了captcha业务及对应接口(从原业务网站搬过来的),无需验签

    2025.12.29

    • 对callback接口增加了请求限制,提高了接口的安全性
    • 整体迁移了站点并升级了网站业务的wordpress版本
    • 增加了skyscript转换工具页面

    2025.12.31

    • 增加了redirect接口和callback接口的安全性,这两个接口将不再作为可直接调用接口开放,redirect接口启用了JS质询来防止未经过浏览器访问的请求,callback接口增加了一次性令牌管理(类似于JWT的机制,访问redirect时服务器对参数生成签名,然后callback再验证签名)
    • 增加了state接口的速率限制,同一个IP每10秒钟调用超过10次后,后续请求将会被阻止
    • 更新了skyscript转换工具
      • 修复了在部分场景下部分区域无法点击的BUG
      • 修复了无法在预览时多指点击的BUG
      • 增加了预览结束后自动回滚至第一行
      • 修复了遗留的时间间隔算法问题,公式修改为:基础等待时间=两音符之间的单位时间差÷最大公约数,其余公式不变
      • 构造的脚本中增加了歌曲原始信息的说明