国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

tunny / 1295人閱讀

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

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

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

路由器會請求以下四個地址:

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

所以我們需要每個請求建立一個文件夾下一個index.php

預(yù)備知識

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

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

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

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

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

之后wifidog會啟動一個線程周期性報告用戶狀態(tài):

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

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

驗證成功后,路由器將請求/portal/?gw_id=%s

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

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

開工

我們將完成用戶用賬號密碼方式認(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ù)庫驗證成功
        $token = "";
        $pattern="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ";
        for($i=0;$i<32;$i++)
            $token .= $pattern[ rand(0,35) ];
        //把token放到數(shù)據(jù)庫,用于后續(xù)驗證(auth/index.php)
        $time = time();
        $sql = "UPDATE user SET token="{$token}",logintime="{$time}"";
        $db->query($sql);
        $db->close();
        //登陸成功,跳轉(zhuǎn)到路由網(wǎng)管指定的頁面.
        $url = "http://{$parseUrl["gw_address"]}:{$parseUrl["gw_port"]}/wifidog/auth?token={$token}";
        header("Location: ".$url);
    }else{
        //認(rèn)證失敗
        //直接重定向本頁 請求變成get
        $url="http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
        header("Location: ".$url);
    }
}else{
    //get請求
    //一個簡單的表單頁面
    $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ù)解釋:
stage: 認(rèn)證階段,就logoin和counters兩種
token: login頁面下發(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匹配,驗證通過
    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會向認(rèn)證服務(wù)器發(fā)送一些信息,來報告wifidog現(xiàn)在的情況,這些信息是通過Http協(xié)議發(fā)送的,如上的鏈接所示,參數(shù)大概如字面意思,沒仔細(xì)研究過,而作為認(rèn)證服務(wù)器,auth_server應(yīng)回應(yīng)一個"Pong"。
主要作用是路由確認(rèn)認(rèn)證服務(wù)器仍然存活,沒有死機(jī),另外一個功能是認(rèn)證服務(wù)器可以收集路由的負(fù)載等的信息。路由器會定時訪問這個腳本,腳本必須回復(fù)Pong,否則將認(rèn)為認(rèn)證服務(wù)器失效而出錯。

/ping/index.php

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

portal/?gw_id=%s

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

/portal/index.php


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

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ā)起一個訪問網(wǎng)站的請求,如:segmentfault.com

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

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

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

用戶填寫后請求認(rèn)證

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

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

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

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

用戶正常上網(wǎng)

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21157.html

相關(guān)文章

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

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

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

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

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

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

    Cympros 評論0 收藏0
  • 自建網(wǎng)站對接微信公眾號

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

    mylxsw 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<