php自动注册登录验证机制实现代码


Posted in PHP onDecember 20, 2011

背景:

在phpwind站点后台添加一个名为“广告管家”(广告管家为CNZZ的一款广告投放的应用)的应用,整个“广告管家”的应用是通过iframe载入,载入的具体内容根据不同站点显示针对该站点的具体内容,为了提高易用性,有以下的两点要求:
1、首次进入“广告管家”页面自动注册CNZZ账户
2、以后每次进入“广告管家”页面默认为首次注册的CNZZ账户

设计:

php自动注册登录验证机制实现代码
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在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
php遍历数组的方法分享
Mar 22 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
浅析php创建者模式
Nov 25 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 PHP
Laravel框架下的Contracts契约详解
Mar 17 PHP
php4与php5的区别小结(配置异同)
Dec 20 #PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 #PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 #PHP
PHP定时执行计划任务的多种方法小结
Dec 19 #PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 #PHP
php安全配置 如何配置使其更安全
Dec 16 #PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 #PHP
You might like
php将时间差转换为字符串提示
2011/09/07 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
js判断日期时间有效性的方法
2015/10/24 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
Python中Collection的使用小技巧
2014/08/18 Python
python定时执行指定函数的方法
2015/05/27 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
超市促销活动方案
2014/03/05 职场文书
承诺函格式模板
2015/01/21 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
就业推荐表院系意见
2015/06/05 职场文书
职位证明模板
2015/06/23 职场文书
繁星春水读书笔记
2015/06/30 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python