站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: 对不起,您安装的不是正版应用,安装程序无法继续
搜索:
您的位置: 主页 > 教程 > CMS > discuz > » 正文

Discuz 自动同步登陆的完美解决办法

来源: 易采站长站
但Discuz的同步登陆问题是个头疼的问题,网上搜搜,类似的文章、贴子无数,也参考过很多的文章,始终没能完美地解决自己系统登陆后同步登陆Discuz的问题;在开发机上正常的,放到服务器上就会出现无法同步登陆的情况。
无奈之下,自己看了一下UCenter、Discuz同步登陆的机制,提炼出了以下用于同步登陆Discuz的代码:


<?php
// 此处需要修改为Discuz根目录下config.php中的对应设置
$cookiepre = 'dz_'; // cookie 前缀
$cookiedomain = ''; // cookie 作用域
$cookiepath = '/'; // cookie 作用路径
$timestamp = time();
function _setcookie($var, $value, $life = 0, $prefix = 1) {
global $cookiepre, $cookiedomain, $cookiepath, $timestamp, $_SERVER;
setcookie(($prefix ? $cookiepre : '').$var, $value,
$life ? $timestamp + $life : 0, $cookiepath,
$cookiedomain, $_SERVER['SERVER_PORT'] == 443 ? 1 : 0);
}
function _authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
$ckey_length = 4;
$key = md5($key ? $key : UC_KEY);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);
$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);
$result = '';
$box = range(0, 255);
$rndkey = array();
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return '';
}
} else {
return $keyc.str_replace('=', '', base64_encode($result));
}
}
function _synlogin($uid){
global $dz_tablepre;
//此处需要修改一下文件的相对路径
require_once dirname(__FILE__).'/../forum/forumdata/cache/cache_settings.php';
$uid = intval($uid);
$cookietime = 2592000;
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
$member = get_row_array_from_sql("SELECT username, uid, password, secques FROM ".$dz_tablepre."members WHERE uid='$uid'");
_setcookie('sid', '', -86400 * 365);
_setcookie('cookietime', $cookietime, 31536000);
_setcookie('auth', _authcode("$member[password]\t$member[secques]\t$member[uid]", 'ENCODE', $discuz_auth_key), $cookietime);
}
function _synlogout() {
_setcookie('auth', '', -86400 * 365);
_setcookie('sid', '', -86400 * 365);
_setcookie('loginuser', '', -86400 * 365);
_setcookie('activationauth', '', -86400 * 365);
}
最新图文资讯
1 2 3 4 5 6
相关文章列表:
曾刚:消费金融未来监管或出现这几大方向 曾刚:消费金融未来监管或出现这几大
放眼国际,全球金融科技创新正如火如荼,新技术重塑着金融产业全流程。以人工智能、区块链、云计算、大数据为代表的核
2017⇆2019三年寒冬 第三方支付行业之变 2017⇆2019三年寒冬 第三方支付行业之变
中国的钱包制造商,太难了。 有着中国缝制设备制造之都美誉的浙江台州,如今已经找不到专门生产钱包的企业了。 要知道
行业诞生以来最大“地震”!大数据倒在2019 行业诞生以来最大“地震”!大数据倒
一场大数据行业诞生以来最大规模的地震正在发生。 2019年9月6日,第三方数据风控公司魔蝎数据和新颜科技的相关负责人在
“蹊跷”的银行财报:资本充足率飙升至15357% “蹊跷”的银行财报:资本充足率飙升
日前,中国债券信息网披露了黄石农村商业银行股份有限公司(下称黄石农商行)2019年三季度信息报告(下称三季报)。 三
被诈骗+背债!凭什么不让我们起诉支付宝? 被诈骗+背债!凭什么不让我们起诉支付
本文呦呦鹿鸣一位读者的遭遇,这件事从未披露过,他写了下来,供诸君参考。我很欣赏年轻的朋友们这样认真对待自己权利
建行贵州分行被罚50万:“e信通”信贷资金被挪用 建行贵州分行被罚50万:“e信通”信贷资
12月3日,贵州银保监局公布行政处罚信息公开表(银保监银罚决字〔2019〕17号),中国建设银行股份有限公司(以下称建设银
水滴筹创始人:再管不好 愿把公司交给公益组织 水滴筹创始人:再管不好 愿把公司交给
12月5日晚,水滴筹创始人兼CEO沈鹏在微博上发布公开信《水滴筹欢迎大众的监督,希望重新赢得信任》,并表示再管不好,我
山东证监局原局长徐铁被开除党籍:曾与姚刚共事6年 山东证监局原局长徐铁被开除党籍:曾
12月6日,据中央纪委国家监委网站消息,日前,中央纪委国家监委驻中国证监会纪检监察组、山东省监委对中国证券监督管理
助贷业务的运作模式、潜在风险及监管建议 助贷业务的运作模式、潜在风险及监管
编者语: 助贷业务存在客户支持、资金支持和风控支持三种基本模式,其发展建立在比较优势理论和金融功能理论的基础上
太悲情!内幕交易亏损超百万 还被罚60万! 太悲情!内幕交易亏损超百万 还被罚
证监会日前通报了一桩利用内幕交易炒股的案件。在ST天业历时一年多,耗资18亿元的跨国并购案的背后,违法当事人斥资千
最新文章
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -