成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

用php寫(xiě)wifidog的認(rèn)證服務(wù)器

tunny / 1315人閱讀

摘要:主要作用是路由確認(rèn)認(rèn)證服務(wù)器仍然存活,沒(méi)有死機(jī),另外一個(gè)功能是認(rèn)證服務(wù)器可以收集路由的負(fù)載等的信息。路由器會(huì)定時(shí)訪問(wèn)這個(gè)腳本,腳本必須回復(fù),否則將認(rèn)為認(rèn)證服務(wù)器失效而出錯(cuò)。

路由器上wifidog的設(shè)置

主要設(shè)置鑒權(quán)服務(wù)器主機(jī)名(域名或ip都可以)和加粗鑒權(quán)服務(wù)器路徑

路由器會(huì)請(qǐng)求以下四個(gè)地址:

http://認(rèn)證服務(wù)器/路徑/login
http://認(rèn)證服務(wù)器/路徑/auth
http://認(rèn)證服務(wù)器/路徑/ping
http://認(rèn)證服務(wù)器/路徑/portal
http://認(rèn)證服務(wù)器/路徑/gw_message.php

所以我們需要每個(gè)請(qǐng)求建立一個(gè)文件夾下一個(gè)index.php

預(yù)備知識(shí)

客戶端首次連接wifi,瀏覽器請(qǐng)求將被重定向到login并攜帶參數(shù)

login/?gw_address=路由器ip&gw_port=路由器wifidog的端口&gw_id=用戶id&url=被重定向前用戶瀏覽的地址

(2013版本的wifidog參數(shù)多了mac)

而login/index.php需要做的就是驗(yàn)證通過(guò)后再重定向到網(wǎng)關(guān):

http://網(wǎng)關(guān)地址:網(wǎng)關(guān)端口/wifidog/auth?token=

之后wifidog會(huì)啟動(dòng)一個(gè)線程周期性報(bào)告用戶狀態(tài):

/auth?stage=&ip=&mac=&token=&incoming=&outgoing=

/auth/index.php則需要返回是否讓該用戶繼續(xù)上網(wǎng),回復(fù)格式:Auth:狀態(tài)碼(0:拒絕, 1:驗(yàn)證通過(guò))

驗(yàn)證成功后,路由器將請(qǐng)求/portal/?gw_id=%s

在/portal/index.php就可以寫(xiě)重定向到第一次請(qǐng)求的url參數(shù)或者重定向到自定義網(wǎng)址了

/ping/index.php的作用就是告訴路由器認(rèn)證服務(wù)器還沒(méi)有崩
/gw_message/index.php作用是當(dāng)認(rèn)證過(guò)程出現(xiàn)錯(cuò)誤的時(shí)候,想用戶顯示錯(cuò)誤信息

開(kāi)工

我們將完成用戶用賬號(hào)密碼方式認(rèn)證

1.首次重定向:

/login/index.php

query("set names "utf8"");
    $result = $db->query("SELECT * FROM user WHERE username="{$username}" AND password="{$password}"");
    if($result && $result->num_rows != 0){
        //數(shù)據(jù)庫(kù)驗(yàn)證成功
        $token = "";
        $pattern="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ";
        for($i=0;$i<32;$i++)
            $token .= $pattern[ rand(0,35) ];
        //把token放到數(shù)據(jù)庫(kù),用于后續(xù)驗(yàn)證(auth/index.php)
        $time = time();
        $sql = "UPDATE user SET token="{$token}",logintime="{$time}"";
        $db->query($sql);
        $db->close();
        //登陸成功,跳轉(zhuǎn)到路由網(wǎng)管指定的頁(yè)面.
        $url = "http://{$parseUrl["gw_address"]}:{$parseUrl["gw_port"]}/wifidog/auth?token={$token}";
        header("Location: ".$url);
    }else{
        //認(rèn)證失敗
        //直接重定向本頁(yè) 請(qǐng)求變成get
        $url="http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
        header("Location: ".$url);
    }
}else{
    //get請(qǐng)求
    //一個(gè)簡(jiǎn)單的表單頁(yè)面
    $html = <<< EOD
    
        
            portal login
        
        
            
username: password:
EOD; echo $html; }
2.用戶認(rèn)證協(xié)議:

/auth/?stage=%s&ip=%s&mac=%s&token=%s&incoming=%s&outgoing=%s
參數(shù)解釋?zhuān)?br>stage: 認(rèn)證階段,就logoin和counters兩種
token: login頁(yè)面下發(fā)的token
incoming: 下載流量
outgoing: 上傳流量

/auth/index.php

query("set names "utf8"");
$token = $parseUrl["token"];
$sql = "SELECT * FROM user WHERE token="{$token}"";
$result = $db->query($sql);
if($result && $result->num_rows != 0){
    //token匹配,驗(yàn)證通過(guò)
    echo "Auth:1";
}else{
    echo "Auth:0";
}

3.Ping協(xié)議

/ping/?gw_id=%s&sys_uptime=%lu&sys_memfree=%u&sys_load=%.2f&wifidog_uptime=%lu

wifidog會(huì)向認(rèn)證服務(wù)器發(fā)送一些信息,來(lái)報(bào)告wifidog現(xiàn)在的情況,這些信息是通過(guò)Http協(xié)議發(fā)送的,如上的鏈接所示,參數(shù)大概如字面意思,沒(méi)仔細(xì)研究過(guò),而作為認(rèn)證服務(wù)器,auth_server應(yīng)回應(yīng)一個(gè)"Pong"。
主要作用是路由確認(rèn)認(rèn)證服務(wù)器仍然存活,沒(méi)有死機(jī),另外一個(gè)功能是認(rèn)證服務(wù)器可以收集路由的負(fù)載等的信息。路由器會(huì)定時(shí)訪問(wèn)這個(gè)腳本,腳本必須回復(fù)Pong,否則將認(rèn)為認(rèn)證服務(wù)器失效而出錯(cuò)。

/ping/index.php

4.認(rèn)證成功后的跳轉(zhuǎn)

portal/?gw_id=%s

在認(rèn)證成功后,wifidog會(huì)將用戶重定向至該頁(yè)面。

/portal/index.php


5.若驗(yàn)證失敗,則會(huì)根據(jù)失敗原因跳轉(zhuǎn)至如下頁(yè)面

gw_message.php?message=denied

gw_message.php?message=activate

gw_message.php?message=failed_validation

/gw_message.php

總結(jié)

wifidog的認(rèn)證流程是:

用戶連上wifi,發(fā)起一個(gè)訪問(wèn)網(wǎng)站的請(qǐng)求,如:segmentfault.com

網(wǎng)關(guān)根據(jù)防火墻規(guī)則,將請(qǐng)求重定向本地(路由器的ip)的wifidog端口

wifidog重定向到認(rèn)證服務(wù)器的認(rèn)證頁(yè)面

認(rèn)證服務(wù)器返回登錄頁(yè)面讓用戶填寫(xiě)

用戶填寫(xiě)后請(qǐng)求認(rèn)證

認(rèn)證服務(wù)器根據(jù)用戶提供數(shù)據(jù)確定是否符合要求

如果符合要求,認(rèn)證服務(wù)器將用戶重定向路由器網(wǎng)關(guān)并攜帶token

網(wǎng)關(guān)向認(rèn)證服務(wù)器確定用戶信息

如果符合要求,服務(wù)器返回用戶登錄成功的頁(yè)面

用戶正常上網(wǎng)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21157.html

相關(guān)文章

  • 服務(wù)端和web端分離架構(gòu)下使 passport 進(jìn)行前后臺(tái)戶各自認(rèn)證

    摘要:服務(wù)端和端分離架構(gòu)下使用進(jìn)行前后臺(tái)用戶各自的認(rèn)證前段時(shí)間大概一年以前寫(xiě)了個(gè)項(xiàng)目使用了前后端代碼分離的架構(gòu),同時(shí)又因?yàn)闃I(yè)務(wù)需要出現(xiàn)了管理端和前臺(tái)商戶端兩套用戶表登陸的需求。 服務(wù)端和web端分離架構(gòu)下使用 passport 進(jìn)行前后臺(tái)用戶各自的認(rèn)證 前段時(shí)間(大概一年以前)寫(xiě)了個(gè)項(xiàng)目使用了前后端代碼分離的架構(gòu),同時(shí)又因?yàn)闃I(yè)務(wù)需要出現(xiàn)了管理端和前臺(tái)商戶端兩套用戶表登陸的需求。 因?yàn)槭褂昧?...

    luffyZh 評(píng)論0 收藏0
  • PHP中使CURL,“撩”務(wù)器只需幾行——php curl詳細(xì)解析和常見(jiàn)大坑

    摘要:七夕啦,作為開(kāi)發(fā),妹子沒(méi)得撩就撩下服務(wù)器吧,妹子有得撩的同學(xué)那就左擁妹子右抱服務(wù)器吧,況且妹子是要禮物的,服務(wù)器又不用。下面我們來(lái)看一些常用的情景,我們需要如何打扮自己配置參數(shù)才能正確撩妹正確撩到服務(wù)器。 七夕啦,作為開(kāi)發(fā),妹子沒(méi)得撩就撩下服務(wù)器吧,妹子有得撩的同學(xué)那就左擁妹子右抱服務(wù)器吧,況且妹子是要禮物的,服務(wù)器又不用。好啦,長(zhǎng)話短說(shuō)再長(zhǎng)說(shuō),祭出今天的工具——CURL(Client...

    SexySix 評(píng)論0 收藏0
  • Limesurvey二次開(kāi)發(fā)(接入CAS統(tǒng)一身份認(rèn)證)隨筆

    摘要:在我開(kāi)發(fā)之前只看見(jiàn)上海交通大學(xué)完成了自己的二次開(kāi)發(fā),并且接入了自己學(xué)校的統(tǒng)一身份認(rèn)證系統(tǒng),除此之外,南京大學(xué)也打算做這個(gè)東西,然而過(guò)去了兩年,好像還是沒(méi)有完成開(kāi)發(fā)。具體的實(shí)現(xiàn)可以參照上海交通大學(xué)的問(wèn)卷吧系統(tǒng)。 Limesurvey是一個(gè)比較著名的開(kāi)源問(wèn)卷調(diào)查項(xiàng)目,GitHub地址:https://github.com/LimeSurvey/LimeSurvey 但由于種種原因,雖然用搜...

    Cympros 評(píng)論0 收藏0
  • 自建網(wǎng)站對(duì)接微信公眾號(hào)

    摘要:自建網(wǎng)站對(duì)接微信公眾號(hào)微信公眾號(hào)技術(shù)平常我們有些寫(xiě)各種網(wǎng)站個(gè)人博客系統(tǒng)物流管理系統(tǒng)通信錄管理系統(tǒng)校園二手網(wǎng)站我們都知道只需要租用一個(gè)服務(wù)器再配置一個(gè)備案好的域名就可以在瀏覽器上進(jìn)行訪問(wèn)了不知大家不知大家有沒(méi)有想過(guò)將你搭的網(wǎng)站對(duì)接微信公眾 title: 自建網(wǎng)站對(duì)接微信公眾號(hào)date: 2018-04-12 15:25tags: 微信公眾號(hào), PHP codeigniter cat...

    mylxsw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<