最開始想用openwrt,刷了一個,結果發現不會用,裏面配置太複雜了,被wan lan搞暈了,一直沒法聯網,由於在公司路由器原本在一個局域網下,沒辦法請公司SA幫忙弄了哈,也沒有搞定,換DDWRT吧,這個但是有中文界面的,頓覺親了不少。 php
ddwrt確實方便不少了,不過必定要注意呀,由於我要用WIFIDOG,以前下了幾個版本都沒有wifidog的配置,好像能夠本身裝,沒試過,由於最開始測試用的wiwiz,下載到路由器上之後,無法安裝,最後直接下了dd-wrt.v24_nokaid_generic.bin這個版本的ddwrt,上面能夠直接配置wifidog.org至關的方便。 node
wifidog認證服務用authpuppy.org,web服務配置(nginx)。 nginx
if (!-e $request_filename) {
rewrite ^(.*) /index.php last;
} web
ddwrt => services => hotspot 服務器
gateway id 這個很重要,認證服務須要這個。 測試
服務器路徑這個必定要注意哈,加/,這個最開始總是不對,研究了好久。發現原來路徑裏面少了一個/,致使沒法訪問到正確的認證接口,若是是路徑的最後還要多加一個/哦。親 url
認證服務配置 spa
nodes頁面裏面加一個node,默認會有一個的啦。定義gw_id就是剛纔ddwrt wifidog裏面配置的那個。 code
而後去下載一個plugin,作驗證的,apAuthLocalUserPlugin,就他了吧。安裝之後裏面能夠配置,頁面信息,註冊等等。 server
如今客戶端鏈接上你的WIFI,去測試下吧,應該能夠了哦。親。
下面說下本身開發wifidog服務端接口的問題。
我只實現了4個接口地址,不曉得其餘的還有那些哈。E文看的不是很懂,須要的本身能夠看http://dev.wifidog.org/wiki/doc/developer/WiFiDogProtocol_V1
/login 這個是鏈接的時候訪問的登陸接口 登陸成功之後,返回一個302轉向到http://gw_server:gw_port/wifidog/auth?token=你的token,這樣子就能夠了。至因而否須要用戶名密碼等等登陸方法。看你本身咯
/auth 這個接口過重要,以前各類無法驗證的緣由都是由於沒有訪問到這個,路由器在剛纔拿到login以後的token後,會再次訪問這個接口,帶上了一些其餘參數如ip、MAC地址等等,固然也包括token,服務器端能夠再次作驗證,這個接口重要是的要返回給路由成功與否,結果以下:
Auth: Number
Number 以下:
0 - AUTH_DENIED - User firewall users are deleted and the user removed. 6 - AUTH_VALIDATION_FAILED - User email validation timeout has occured and user/firewall is deleted 1 - AUTH_ALLOWED - User was valid, add firewall rules if not present 5 - AUTH_VALIDATION - Permit user access to email to get validation email under default rules -1 - AUTH_ERROR - An error occurred during the validation process本身猜內容,我都是猜的。反正我返回的1,就對了。
/ping 這個接口很簡單。返回結果內容包含Pong字符串就能夠了。
/portal 哦。這個仍是有點重要哦,是認證經過之後,路由器自動定向的頁面,固然若是你須要返回到用戶以前的頁面,在/login接口的時候,路由器傳入了一個url的地址,那個是用戶真的想訪問的地址哈。
好吧,打完收工,