
discuz自带ucenter,主要就是用于和其他程序的通信.我们可以下载discuz的ucenter开发手册进行magento和discuz的集成.里面有一些ucenter的一些接口函数和参数说明,没有这个文档,最模板就无法进行下面:
1、把api和uc_client目录放在应用程序的跟目录.
2、修改自己的配置文件(application/config/config.ini),在最后加上下面的代码:代码如下
[ucenter]
uc.UC_ON = 0
uc.UC_CONNECT = mysql
uc.UC_DBHOST = localhost
uc.UC_DBUSER = root
uc.UC_DBPW = vertrigo
uc.UC_DBNAME = ucenter
uc.UC_DBCHARSET = utf8
uc.UC_DBTABLEPRE = ucenter.uc_
uc.UC_KEY = 123456789
uc.UC_API =
uc.UC_CHARSET = utf-8
uc.UC_IP =
uc.UC_APPID = 1
复制代码
2、监视器电源开关一直处于打开状态,己失控,(判断、可打开或关闭监视器电源开关,检查面板电源指示灯在开关打开时是否亮,在电源开关关闭时是否处于灭状态,有以上现象可判断开关正常)。注意:指示灯亮就表示开启,如果要打字就再按次scroll lock键,指示灯关闭就表示关闭连发功能,打字完再按次scroll lock键保持连发的开启状态,1.1.2以后版本增加连发热键开关:左右win键。使用音频线时,直接插线就能播放,开关关闭即为关闭主动降噪、开关打开即为开启主动降噪.。
应用的key一致不然会显示通信失败。
3、修改index.php入口文件,加入配置解析,代码如下:

代码如下
//ucenter配置
过程中修改的文件有: discuz程序: api\uc.php uc_client\data\cache\apps.php ecshop程序: user.php api\uc.php includes\lib_common.php includes\modules\integrates\ucenter.php ecshop ucenter卸载 登录ecshop后台,“sql查询”提交以下语句,清除缓存。总结:总的来说,ucenter一站登陆原理是socket远程打开ucenter,并且传输已经登陆的公用uid,ucnter循环通过js调用各应用下的api,在各个地方设置cookie,而保证cookie通用的则是p3p处理[注意不同应用下的api脚本不一样,bbs的uc.php不同于uchome的uc.php]。也可以直接采用最简单最有效的解决办法:将你的uc服务器端相应的应用的“应用的 ucenter 配置信息”这一项下面的代码复制到你的应用的配置文件—config_ucenter.php里面,覆盖相应的参数保存即可,config_ucenter.php文件在你的程序所在目录的\config路径下。
if (Zend_Registry::get('UC_ON')) {
// 连接 ucenter 的方式: mysql/null,默认为空时为 fscoketopen(), mysql 是直接连接的, 为了效率, 建议采用 mysql。 // 连接 ucenter 的方式: mysql/null, 默认为空时为 fscoketopen(), mysql 是直接连接的, 为了效率, 建议采用 mysql。5、安全可靠的系统保障,采用主流 mssql server大型系统,兼容现在最新的sql2008,sql2005,sql2000,数据安全无误,系统稳定可靠ucenter整合图文教程,数据自动备份保障数据万无一失,数据传输采用先进的数据压缩技术,确保数据交换更加快捷准确,完全开放,数据表和字段属性描述有文档资料,可以让企业自有开发人员直接从后台提取数据,使企业内部各软件系统实现无缝连接,系统兼容win8,win7,win2008主流操作系统,对你硬件升级提供了无限可能。
define('UC_DBHOST', $config->ucenter->uc->UC_DBHOST); // UCenter主机
define('UC_DBUSER', $config->ucenter->uc->UC_DBUSER); // UCenter 用户名
define('UC_DBPW', $config->ucenter->uc->UC_DBPW); // UCenter 密码
uc_dbname: ucenter 名称。uc_dbname:ucenter 名称。uc_dbname: ucenter名称。
define('UC_DBCHARSET', $config->ucenter->uc->UC_DBCHARSET); // UCenter 字符集
ucenter 表前缀:pre_ucenter_ define(‘。uc_dbtablepre:ucenter 的表前缀。 // ucenter 表前缀(格式:.前缀)。
3)通信密钥:这里的通信密钥要和 config.pnp 里的 define('uc_key',后面的数字对应。uc_key = 123456(与ucenter通信的密钥,这里自己设定,需与discuz ucenter一支)。uc_key: 通信密钥,打开ucenter把帝国cms应用里的通信密钥和此密钥统一。
// ucenter 的 url 地址, 在调用头像时依赖此常量。 // ucenter 的 url 地址, 在调用头像时依赖此常量。 // ucenter 的 url 地址, 在调用头像时依赖此常量。
相同,找到synlogin这个function.com/zhidao/pic/item/4bed2e738bd4b31cb92f6f2c81d6277f9e2ff812.inc,就是配置config文件了ucenter整合图文教程,所以这些代码需要在页面上面执行才能实现同步登录功能,今天就由68ecshop的技术详细的介绍下如何把自己的网站整合上ucenter,所以我改了个名字叫config,但是如果是自己开发的网站需要和discuz或者ecshop同步登录的话,需要注意的是要实现同步登录,应用类型.php里面的所有config,然后在刷新ucenter后台的应用列表,同步退出的方法,这个函数里面你可以进行操作,如登录函数是。总结:总的来说,ucenter一站登陆原理是socket远程打开ucenter,并且传输已经登陆的公用uid,ucnter循环通过js调用各应用下的api,在各个地方设置cookie,而保证cookie通用的则是p3p处理[注意不同应用下的api脚本不一样,bbs的uc.php不同于uchome的uc.php]。4)在 ucenter 里检查一下 ucenter home 这个应用的 id 值是不是和 ucenter home 中 config.php 里的 define('uc_appid'值相同。
define('UC_IP', $config->ucenter->uc->UC_IP); // UCenter 的 IP
define('UC_APPID', $config->ucenter->uc->UC_APPID); // 当前应用的 ID
include './uc_client/client.php';
}
复制代码
好了,准备工作完成了,下面要进行程序开发了。
4、登陆同步的实现,下面的代码有点长,因为我是开始没有集成ucenter,后来新增的ucenter,所以做了兼容性,兼顾了没有开启ucenter 的
登录。
代码如下
//如果开启了ucenter
if ($this->is_uc_on) {
//通过接口判断登录帐号的正确性,返回值为数组
list($uid, $username, $password, $email) = uc_user_login($username,$password)。list($uid, $username, $password, $email) = uc_user_login($_post['username'], $_post['password'])。list($uid, $username, $password, $email) = uc_user_login($_post['username'], $_post['pw'])。
if($uid > 0) {
//判断用户是否存在于用户表,不存在则跳转到激活页面
if($this->user->checkUserValid($username)) {
//将这些用户信息写入cookie,用于激活页面
// setcookie(’auth’, uc_authcode($uid.”/t”.$_post['username'], ‘encode’))。setcookie(’auth’, uc_authcode($uid.”/t”.$username, ‘encode’))。 $userdata=array( 'uid'=>$uid, 'username'=>$username, 'password'=>$password, 'email'=>$email, 'adminid'=>0, 'groupid'=>10, 'regdate'=>$time, 'credits'=>0, 'timeoffset'=>9999 )。
$this->view->securl = $this->view->domain.'/user/activation';
$this->view->msg = '您需要需要激活该帐号,才能进入本应用程序!';
echo $this->view->render('success.php');
exit;
}
//用户登陆成功,设置 Cookie
$udata = array('id'=>$uid,'username'=>$username,'role'=>'member');
$expire = 86400;
$this->setCookie($udata,$expire);
//生成同步登录的代码
$ucsynlogin = uc_user_synlogin($uid);
$this->view->securl = $this->view->domain;
$this->view->msg = '登录成功,正在跳转回首页!';
echo $this->view->render('success.php');
} elseif($uid == -1) {
$this->view->error= "用户不存在,或者被删除!";
echo $this->view->render('error.php');exit;
} elseif($uid == -2) {
$this->view->error = "密码错误!";
echo $this->view->render('error.php');exit;
} else {
$this->view->error = "系统错误,请稍候再试!";
echo $this->view->render('error.php');exit;
}
}
else //没有采用uc的登录方式
{
$dbAdapter = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
//$authAdapter->setTableName('bg_user');
final managedprofileheuristic heuristic = managedprofileheuristic.get(mcontext, user)。alert('get js data from parent > '+ window.parent.user)。look+形容词 get ready for get on/off get upget down get to。
$authAdapter->setIdentityColumn('username');
$authAdapter->setCredentialColumn('password');
$authAdapter->setIdentity($username);
$authAdapter->setCredential($password);
$auth = Zend_Auth::getInstance();
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
$data = $authAdapter->getResultRowObject(null,'password');
//$auth->getStorage()->write($data);
//写入cookie
$udata = array('id'=>$data->id,'username'=>$data->username,'role'=>$data->role);
$expire = 86400;
$this->setCookie($udata,$expire);
$this->view->securl = $this->view->domain;
$this->view->msg = '登录成功,正在跳转回首页!';
echo $this->view->render('success.php');
}else{
//用户名密码
$this->view->error = "用户名密码错误!";
echo $this->view->render('error.php');
exit();
}
}
好了,同步登录完成,接着就仿照上面的注销,修改密码,修改等都可以实现了。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-117790-1.html
芝麻有虫子不好吗
这是我的老公们
上次阅兵式后领航飞行员就对新闻记者讲述了我们的现状