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的相关安装指南)。
[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,导致客户端认证失败,即用户系统不允许客户端通过认证 |