Skip to content

如何进行二次开发(基于WebHook)

以下内容仅供具备研发能力用户阅读,若无开发能力,请致电 0571-87032123 付费定制解决方案

自定义认证流程接口(钩子)用于场地整合自身的认证流程,通过限制登录、注册的过程,在登录和注册时加一道可控的验证规则,并对账户本身的套餐数据和到期信息做动态变更,以实现对认证页账户的自由控制。

例如:
场地为办公场地、宿舍,公司的员工流动率比较大,然后网络只想开放给内部员工使用。
然后内部员工有专门的数据库,这样就可以不另行在认证页注册的情况下,
直接使用内部数据库的账户和密码登录认证页并使用。

具体设置方式和开发说明如下:

一、登录微云间管理平台,在场地管理中找到需要使用该功能的场地,并点击配置

1.png

二、在配置中找到 前台回调接口URL前台回调接口数据密钥 这两项,并进行设置

2.png

前台回调接口URL: 用于回调的,公网可访问的 Http 接口的具体地址,例如 http://test.weiyunjian.com/test.php
前台回调接口数据密钥: 用于校验接收数据合法性的密钥,在数据验签时需要使用密钥

三、开发说明

用户在认证页登录或注册时,微云间会发起POST请求 可根据action参数去区分是注册还是登录动作,如果参数值为login则是登录动作,若为register则是注册 相关业务逻辑需在5秒内返回结果 结果请返回json字符串,结构中需带上 successsign以及data

success 为布尔值,代表是否放通用户本次注册、登录
data 内参数信息为需要微云间侧应用的数据内容,在data内有值的情况下,我们会主动更新用户的对应属性值为对应内容
sign 是签名值,只有当签名值与内容校验一致的情况下,才会认为该次请求是合法的。

示例返回结果如下:

{
    "data": {
        "download": "下行,0为不限制,单位kbps",
        "enabled": "1为启用,0为不启用",
        "expired_at": "到期时间,格式为Y-m-d H:i:s,例如2019-07-20 00:00:00",
        "mobile": "手机号",
        "package_id": "套餐ID,如果不清楚直接填0吧",
        "share": "限制共享数,0为不限制",
        "upload": "上行,0为不限制,单位kbps",
    },
    "success": true,
    "sign": "xxxx"
}

接口文件开发示例(PHP):

<?php

$callback_key = '此处填写微云间场地配置中设置的密钥值';

//必要参验证
if (!isset($_POST['sign']) || !isset($_POST['action']) || !isset($_POST['username']) || !isset($_POST['password'])) {
    exit('Access Denied!');
}

//验签过程
$sign = $_POST['sign'];
unset($_POST['sign']);
ksort($_POST);
if (md5(http_build_query($_POST) . '&key=' . $callback_key) != $sign) {
    exit('Access Denied!');
}

$ret = [
    'success' => false,
    'data'    => []
];

//这里为业务逻辑部分,拿$_POST['username']和$_POST['password']去验证实际用户是否和己方业务中的内容一样
//如果正确请把$ret['success']标记为true
//如果是错误的,直接继续执行下面逻辑

ksort($ret);
$ret['sign'] = md5(http_build_query($ret) . '&key=' . $callback_key);

//返回结果
exit(json_encode($ret));