# CaptchaSample **Repository Path**: royedvamp/CaptchaSample ## Basic Information - **Project Name**: CaptchaSample - **Description**: 基于顶象认证的双因子认证示例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-07-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CaptchaSample #### 项目介绍 基于顶象认证的双因子认证示例 ![输入图片说明](https://images.gitee.com/uploads/images/2018/0724/183240_e817d7d9_1098680.png "QQ20180724-182737@2x.png") ![输入图片说明](https://images.gitee.com/uploads/images/2018/0724/183253_157b77da_1098680.png "QQ20180724-182831@2x.png") #### Web集成 1. 引入 JS `` 2. 初始化 假设页面上有一个 `
`,则可以像下面这样初始化验证码: ``` var myCaptcha = _dx.Captcha(document.getElementById('c1'), { appId: 'appId', //appId,开通服务后可在控制台中“服务管理”模块获取 success: function (token) { // console.log('token:', token) } }) ``` 初始化完成后,验证码组件会被插入到 `
` 中。 #### JavaSDK 当用户滑动验证码通过后,验证码服务会生成一个token,用户的业务请求带上这个验证码token,业务系统再去请求验证码服务验证token的有效性。 ``` /**构造入参为appId和appSecret * appId和前端验证码的appId保持一致,appId可公开 * appSecret为秘钥,请勿公开 * token在前端完成验证后可以获取到,随业务请求发送到后台,token有效期为两分钟 **/ String appId = "appId"; String appSecret = "appSecret"; CaptchaClient captchaClient = new CaptchaClient(appId,appSecret); //captchaClient.setCaptchaUrl(captchaUrl); //特殊情况需要额外指定服务器,可以在这个指定,默认情况下不需要设置 CaptchaResponse response = captchaClient.verifyToken(token); System.out.println(response.getCaptchaStatus()); //确保验证状态是SERVER_SUCCESS,SDK中有容错机制,在网络出现异常的情况会返回通过 if (response.getResult()) { /**token验证通过,继续其他流程**/ } else { /**token验证失败,业务系统可以直接阻断该次请求或者继续弹验证码**/ } ``` #### 参与贡献 1. 顶象技术官网 [https://www.dingxiang-inc.com/](https://www.dingxiang-inc.com/)