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

yipeiwu_com5年前PHP代码库
背景:

在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获取远程文件内容的函数代码,兼容性强。直接调用就可以轻松获取远程文件的内容,使用这个函数也可获取图片。代码如下: /** * 读远程内容 * @return...

通过php动态传数据到highcharts

通过php动态传数据到highcharts

1:在平时工作中,在对数据进行展示的时候,是直接通过后台提供的接口来获取json串,用来展示。今天别人问怎么在本地演示一下请求的动态数据。 2:在本地搭建环境,我用的WampServer...

php下通过伪造http头破解防盗链的代码

伪造referer实例代码,主要用于一些突破防盗链,比如图片,软件等等 这里就直接给出完整的程序吧,具体的应用可以自己修改。 我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的...

自动把纯文本转换成Web页面的php代码

首先让我们来看一个我朋友希望转换的纯文本文件的例子: 以下为引用的内容: 复制代码 代码如下:   Green for Mars!   John R. Doe   The idea of...

PHP读取CURL模拟登录时生成Cookie文件的方法

PHP读取CURL模拟登录时生成Cookie文件的方法

本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法。分享给大家供大家参考。具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代...