Wiwiz Auth API参考手册与接口规范

[修改履历]
Ver 1.1 : 加入参数userstring(自定义追踪信息)。(2012.12.28)
Ver 1.2 : 加入参数url,用于传送客户端用户的初始访问网址。(2013.3.5)
Ver 1.3 : 加入断开认证连接的接口。(2013.3.5)
Ver 1.4 : 加入流量控制参数。(2014.8.1)
Ver 1.5 : 加入认证连接的断开时间动态设置接口。(2015.10.16)
Ver 1.6 : 在指定postauth参数的情况下,认证完成后显示的网址中将传入tokencode与mac参数。(2015.10.21)
Ver 1.7 : 加入userstring的动态设置接口。(2016.8.30)

[目录]
1.功能描述
2.使用条件与要求
3.调用示意图
4.调用流程说明
5.断开认证连接的方法
6.客户端用户自主断开认证连接的方法
7.认证连接的断开时间的动态设置
8.userstring的动态设置
9.注解
10.代码示例

[1.功能描述]
Wiwiz Auth API是Wiwiz HotSpot Builder提供的基于Web的外部开发接口。利用它可以实现在第三方系统/用户系统进行账户认证(Web认证)后接入网络并进行简单的认证控制。

将用户系统与Wiwiz Auth API集成的过程非常简单。用户仅需了解一种Web服务器端开发语言或工具(例如,ASP,C#/VB.Net,JSP/Servlet,PHP等),并使用它根据Wiwiz Auth API的接口规范为用户系统编写一个Web程序。

如果,你已利用Wiwiz Auth API与你的系统(例如,你的网站,论坛,博客或其他系统等)进行了集成,当某个客户在你的网络中打开浏览器并访问任意的http地址时,他将会首先看到你的网络或热点的Web认证页面,即你编写的Web程序。在这个页面中,他将根据你的要求进行身份验证或登录确认等操作,并得到你的授权。之后,他才可以访问Internet。

[2.使用条件与要求]
1.用户需拥有Wiwiz专业版账户。
2.查询Wiwiz账户的User Key(*注3)
3.在Wiwiz Web面板创建一个热点,在“认证规则设置”部分设置“认证方式”为“第三方认证(调用Wiwiz Auth API)”。设置“认证URL”为你为用户系统编写的Web程序地址。(*注1)
4.已在本地网络设备中安装并设置了Wiwiz HotSpot Builder Utility(参考Wiwiz HotSpot Builder Utility的相关安装指南)。

[3.调用示意图]

调用示意图

调用示意图

[4.调用流程说明]
(1) 网络中的客户端在浏览器中访问任意http网址,将会自动启动Web认证机制,请求会被Wiwiz服务端拦截并将浏览器页面跳转至“认证URL”(*注1)”。同时,Wiwiz服务端会通过“认证URL”向用户系统传送3个HTTP GET传入参数,tokencode,srvurl与url。参数的含义如下:

参数名 说明
tokencode Wiwiz服务端向用户系统发送的令牌码
srvurl 用户系统向Wiwiz服务端发送http请求时应使用的地址
url 客户端浏览器中输入的触发Web认证的http网址,即客户端用户最初访问的网址

(2) 在用户系统中,根据用户系统的业务需求进行自己的账户验证/登录验证等处理。即,图中的“第1步”处理。

(3) 如在用户系统中的验证处理通过,则在用户系统的服务器端调用Wiwiz Auth API以进行预认证。即,图中的“第2步”处理。
- 调用方式为在服务器端(不是在客户端或浏览器侧)(*注2)向Wiwiz服务端发起HTTP请求。请求地址为处理(1)中传入参数srvurl的值。
- 发起请求时需要设置若干参数(HTTP GET或HTTP POST参数),包括:

参数名 必须/可选 说明
wiwiz_auth_api 必须 设为固定值“1”
ver 必须 设为固定值“1.0”
tokencode 必须 设为处理(1)中同名传入参数的值
userkey 必须 设为用户自己的User Key(*注3)
action 必须 授权标志。设为“1”将使客户端认证成功;设为“0”则使客户端认证失败
endtime 可选 设置此参数将使客户端的Internet连接在指定时间关闭
格式: yyyy-mm-dd hh:MM:ss 例如: 2012-05-31 21:39:00
注意: 对此参数的值必须进行url编码
postauth 可选 设置此参数将设置客户端在通过认证后跳转的页面地址
例如:http://www.wiwiz.com
注意: 对此参数的值应进行url编码
incoming_max 可选 设置此参数将指定连接的接收流量上限。单位为MBytes。
注:Wiwiz会对流量的使用做出预判,但认证连接的断开一般有短暂的延迟,因此连接断开时的实际流量会有少许误差
outgoing_max 可选 设置此参数将指定连接的发送流量上限。单位为MBytes。
注:Wiwiz会对流量的使用做出预判,但认证连接的断开一般有短暂的延迟,因此连接断开时的实际流量会有少许误差

- Wiwiz服务端接收到该请求后将返回一个Http Response作为验证结果,这个结果叫做verifycode。
如果存在错误,verifycode的值为ERRX(X代表一位数字) (*注4)。
否则,verifycode应该是一组16位进制的数字。

(4) 然后,再次调用Wiwiz Auth API完成认证。即,图中的“第3步”处理。

- 调用方式为是在客户端/浏览器侧(*注5)向Wiwiz服务端发起一个HTTP请求。请求的地址为处理(1)中传入参数srvurl的值。
- 请求的同时需要设置以下参数(HTTP GET或HTTP POST参数),包括:

参数名 必须/可选 说明
wiwiz_auth_api_login 必须 设为固定值“1”
tokencode 必须 设为处理(1)中同名传入参数的值
verifycode 必须 设为处理(3)中得到的verifycode的值
userstring 可选 可任意设置内容,用于自定义的追踪信息。

- 最后,认证完成。浏览器将显示Wiwiz Web面板中设置的认证后页面或postauth参数中指定的网址。
如果指定了postauth,那么认证后显示的网址中将包含两个URL参数,tokencode和mac。tokencode即最初的同名传入参数,mac是终端的MAC地址。
如遇到错误则显示错误页面并显示错误代码(*注6)。



[5.断开认证连接的方法]
如果需要切断某个已认证连接,可以在服务器端向Wiwiz服务端发起HTTP请求,请求的URL为:
格式:[srvurl]?disconn=2&t=[tokencode]&userkey=[userkey]
例:http://cp.wiwiz.com/as/s/login2/?disconn=2&t=A1398E284DC&userkey=246DD22C084BB40E

Wiwiz服务端接收到该请求后返回的Http Response的含义为:

Response返回结果 含义
0 操作成功,连接将会自动切断(一般会在1分钟内切断)
ERR21 连接不存在或已切断
ERR22 热点不存在
ERR23 错误的User Key或无权限



[6.客户端用户自主断开认证连接的方法]
你可能希望客户端用户自己可以主动断开已认证的Internet连接。
你只需让客户端用户在浏览器访问以下网址即可:
格式:[srvurl]?disconn=1&t=[tokencode]
例:http://cp.wiwiz.com/as/s/login2/?disconn=1&t=A1398E284DC

这个访问请求成功后,其返回结果有以下3种:

Response返回结果 含义
wiwiz_user_disconnect(0) 认证连接立即切断
wiwiz_user_disconnect(1) 认证连接无法立即切断,但即将会自动切断
wiwiz_user_disconnect(2) 连接不存在或已切断



[7.认证连接的断开时间的动态设置]
在终端通过认证后,如果需要改变认证连接的断开时间,可以在服务器端向Wiwiz服务端发起HTTP请求,请求的URL为:
格式:[srvurl]?set_endtime=[time]&t=[tokencode]&userkey=[userkey]
例:http://cp.wiwiz.com/as/s/login2/?set_endtime=2015-12-19+19:00:00&t=A1398E284DC&userkey=246DD22C084BB40E

Wiwiz服务端接收到该请求后返回的Http Response的含义为:

Response返回结果 含义
0 操作成功,连接将会自动切断(一般会在1分钟内切断)
ERR21 连接不存在或已切断
ERR22 热点不存在
ERR23 错误的User Key或无权限



[8.userstring的动态设置]
在终端通过认证后,如果需要改变userstring(自定义追踪信息)的内容,可以在服务器端向Wiwiz服务端发起HTTP请求,请求的URL为:
格式:[srvurl]?set_userstring=[userstring]&t=[tokencode]&userkey=[userkey]
例:http://cp.wiwiz.com/as/s/login2/?set_userstring=ABCDEFG&t=A1398E284DC&userkey=246DD22C084BB40E
注意,set_userstring的值必须进行urlencode处理。如果内容较长,则应该使用POST方法发送HTTP请求。

Wiwiz服务端接收到该请求后返回的Http Response的含义为:

Response返回结果 含义
0 操作成功
ERR21 连接不存在或已切断
ERR22 热点不存在
ERR23 错误的User Key或无权限



[9.注解]
注1:“认证URL”可在Wiwiz Web面板的“热点设置”页面中设置。它就是用户根据Wiwiz Auth API的规范为用户系统写的Web程序的地址。

注2:<重要>出于安全考虑,进行预认证发起的HTTP请求一定要在服务器端程序中进行。例如,在ASP,C#/VB.Net,JSP/Servlet,PHP代码中,而不要使用HTML与Javascript在客户端发起请求。

注3:User Key可在Wiwiz Web面板的“用户菜单”->“升级选项”->“查询User Key”中查询。

注4:错误代码及错误原因:

错误代码 错误原因
ERR0 认证已超时,或无效的认证请求
ERR1 错误的User Key
ERR2 参数action的值设置错误(设置为0、1以外的值)
ERR3 参数endtime的值设置错误

注5:用于完成认证所发起的HTTP请求,最简单的方式是的方式是使浏览器跳转到指定地址,可使用服务器端代码通过向浏览器发送Redirect指令进行,也可使用客户端代码进行浏览器页面地址跳转,如HTML,JavaScript。

注6:错误代码及错误原因:

错误代码 错误原因
ERR0 认证已超时,或无效的认证请求
ERR1 错误的User Key
ERR2 参数action的值设置错误(设置为0、1以外的值)
ERR3 参数endtime的值设置错误
ERR4 参数verifycode的值设置错误
ERR5 参数action设置为0,导致客户端认证失败,即用户系统不允许客户端通过认证

[10.代码示例]

Wiwiz Auth API集成示例代码(Java/JSP版)

Wiwiz Auth API集成示例代码(PHP版)

Wiwiz Auth API集成示例代码(ASP.Net版)

Comments are closed.