上篇文章结合wifidog的协议,讲解了如何实现wifi认证。这篇文章会详细讲解一下wifidog的协议。

wifidog的认证流程图

  • 用户连接WIFI会跳转到以下地址:
1
2
3
4
5
6
7
http://auth_server/login?gw_id=[GatewayID, default: "default"]gw_address=[GatewayAddress, internal IP of router]gw_port=[GatewayPort, port that wifidog Gateway is listening on]
url=[user requested url] auth_server #即认证的域名
gw_id #配置的网关名称
gw_address #回调的内网地址
gw_port #回调的端口

在这个阶段需要返回登录的页面,即授权的首页,并且需要将所有涉及跳转的第三方地址加入白名单

  • 当验证用户身份之后,即用户登录成功之后重定向到网关地址
1
2
3
http://GatewayIP:GatewayPort/wifidog/auth?token=[auth token]

auth token #系统为用户生成的token
  • 网关地址接受到消息后,会周期的发送用户信息,并确认是不是允许继续网络访问 请求地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
http://auth_server/auth/index.php?
stage=counters
ip=
mac=
token=
incoming=
outgoing= ip,mac,token为用户的基本信息,incoming/outgoing为用户的连接计数信息,用来限定用户是否可以继续连接 此时auth_server需要返回该请求:
0——拒绝,删除防火墙内用户以及用户的信息
6——用户验证失败,超时,会删除防火墙内信息(即会重新要求登录)
1——用户验证通过,并跳转到http://auth_server/portal/?gw_id=%s
5——用户需要验证,允许规则内的访问进行验证
-1——用户验证出错,用户可以继续访问网络 返回数据格式:
Auth: <number from user status list>
如Auth: 1 #中间有个空格
  • 系统会周期性发送心跳包,用来确认网关验证和认证服务器的正常工作请求地址
1
2
3
4
5
6
7
8
9
http://auth_sever/ping/?
gw_id=%s
sys_uptime=%lu
sys_memfree=%u
sys_load=%.2f
wifidog_uptime=%lu auth_server此时需要返回“Pong”
可以通过该心跳包来监控整个认证的工作

相关资料:
认证流程图:http://dev.wifidog.org/wiki/doc/developer/FlowDiagram
认证的login协议: http://dev.wifidog.org/wiki/doc/developer/LoginProtocol
认证的客户端协议:http://dev.wifidog.org/wiki/doc/developer/ClientProtocol
认证过程中的心跳包协议:http://dev.wifidog.org/wiki/doc/developer/PingProtocol

最新文章

  1. Python(五)模块
  2. HTML 链接 - href
  3. R12 - OM改进了对成本与收入确认的流程
  4. 体验Azure的 Automation “自动化” 服务预览版
  5. Uncle Sam 山姆大叔
  6. .net程序员转战android第三篇---登录模块之静态登录
  7. xpath定位动态iframe
  8. 都2019年了,还问GET和POST的区别
  9. ---————for循环打印爱心
  10. html:常见行内标签,常见块级标签,常见自闭合标签
  11. Apache JMeter5 设置中文
  12. C++ Programming Language中的narrow_cast实现
  13. 基于jQuery左右滑动切换特效
  14. Guided Image Filtering
  15. 网页向flash传参数。显示视频。(例子)
  16. Python学习之路 (四)爬虫(三)HTTP和HTTPS
  17. [cocos2dx笔记003] Vs2013添加静态库project
  18. TF-IDF与余弦相似性的应用:找出相似文章
  19. (11)go 数组和切片
  20. hpu 1194 Sequence

热门文章

  1. Sublime Text 2搭建Go开发环境,代码提示+补全+调试
  2. Weekly linux and ConferenceByYear(2002-now)
  3. C++11 bind
  4. CRC校验的实现
  5. android操作sqlite数据库及心得
  6. iOS 线程之GCD的高级使用方法
  7. AngularJS订阅API服务
  8. 为什要使用预编译SQL?(转)
  9. C#编程(四十七)----------集合接口和类型
  10. Ant build.xml