php自动注册登录验证机制实现代码
2015-01-24信息快讯网
在phpwind站点后台添加一个名为“广告管家”(广告管家为CNZZ的一款广告投放的应用)的应用,整个“广告管家”的应用是通过iframe载入,载入的具体内容根据不同站点显示针对该站点的具体内容
背景:在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字符串函数的总结分析
基于php split()函数的用法详解
深入PHP nl2br()格式化输出的详解
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
深入php define()函数以及defined()函数的用法详解
用Php编写注册后Email激活验证的实例代码
注册页面之前先验证用户名是否存在的php代码
PHP设计模式 注册表模式
PHP设计模式 注册表模式(多个类的注册)
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
使用JSON实现数据的跨域传输的php代码
php4与php5的区别小结(配置异同)
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
如何使用Linux的Crontab定时执行PHP脚本的方法
PHP定时执行计划任务的多种方法小结
在WINDOWS中设置计划任务执行PHP文件的方法
PHP学习笔记 用户注册模块用户类以及验证码类