php自动注册登录验证机制的解决办法

内容摘要
这篇文章主要为大家详细介绍了php自动注册登录验证机制的简单示例,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!背景:在phpwind站点后台
文章正文

这篇文章主要为大家详细介绍了php自动注册登录验证机制的简单示例,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

背景:在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?>"); 
} 
} 

注:关于php自动注册登录验证机制的简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!