php自動註冊登入驗證機制實現代碼

來源:互聯網
上載者:User

背景:

在phpwind網站後台添加一個名為“廣告管家”(廣告管家為CNZZ的一款廣告投放的應用)的應用,整個“廣告管家”的應用是通過iframe載入,載入的具體內容根據不同網站顯示針對該網站的具體內容,為了提高易用性,有以下的兩點要求:
1、首次進入“廣告管家”頁面自動註冊CNZZ賬戶
2、以後每次進入“廣告管家”頁面預設為首次註冊的CNZZ賬戶

設計:


1、嘗試載入使用者帳號和密碼資訊,此資訊儲存在資料庫或是文本緩衝中
2、當存在使用者名稱和密碼的情況下向cnzz發送一個請求用來擷取Token,將此Token值加入到iframe的地址中,如此就能載入針對該使用者的頁面
3、當不存在使用者名稱和敏嗎的情況下待用cnzz的註冊介面,註冊成功後返回token,也同樣將此Token作為iframe地址的一部分用來載入頁面
4、Token值有效期間只有一次,即使被截取了也能保證安全性
代碼:

複製代碼 代碼如下:$urls = parse_url($db_bbsurl);
$domain = $urls['host'];
include_once (R_P .'require/admvclient.php');
$adm_oem= new Cnzz_Adm_Oem();
//判斷config檔案是否存在使用者密碼
pwCache::getData(D_P . "data/bbscache/adm_config.php");//使用者名稱密碼 設定檔
if (isset($adm_user) && isset($adm_pwd)) {
$request = array("adm_user"=>$adm_user,"adm_pwd"=>$adm_pwd,'cms'=>'pw');
$token = $adm_oem->get_appkey_once($request);
if ($token<0){
if($token==-1){
adminmsg('傳遞參數為空白或傳遞參數非數字');
}else if($token==-2){
adminmsg('傳遞參數password錯誤');
}
}else{
$apikey = $token['adm_key'];
}
}else{
$Key = md5($domain.'KclGiq7H');
$request = array('cms'=>'pw','domain'=>$domain,'key'=>$Key);
$token = $adm_oem->reg_user_once($request);
if ($token<0){//異常
if($token==-1){
adminmsg('key有誤');
} else if($token==-2){
adminmsg('網域名稱長度有誤(1~64)');
} elseif($token==-3){
adminmsg('網域名稱輸入有誤(比如輸入漢字)');
} elseif($token==-4){
adminmsg('網域名稱插入資料庫有誤');
} elseif($token==-5){
adminmsg('IP使用者調用頁面超過閥值,閥值暫訂為10');
}
} elseif (is_array($token) && isset($token)){
$adm_user = $token['adm_user'];
$adm_pwd = $token['adm_pwd'];
$apikey = $token['adm_key'];
pwCache::setData(D_P.'data/bbscache/adm_config.php',"<?php\r\n\$adm_user=".$adm_user.";\r\n\$adm_pwd=".$adm_pwd."\r\n?>");
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.