本篇文章给大家谈谈discuz单点登录插件,以及discuz论坛插件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何在其他系统中链接的Discuz,实现单点登录
- 2、用java实现discuz PHP论坛一键登录
- 3、discuz的插件安装详细教程!
- 4、如何利用ucenter实现单点登录
- 5、discuz nt 单点登录怎么实现 我把论坛和CMS整合好了 在页面登陆后点击进入论坛又到论坛登录还得登一次??
- 6、wordpress用ucenter插件同步discuz用户后,wordpress的评论也想要同步discuz用户怎么弄啊?
如何在其他系统中链接的Discuz,实现单点登录
经过研究,重写实现了一个可以在不同2版本中实现单点登录的简 单方法。1,共用登陆页代码实现:复制代码 代码如下: protected void btnLogin_Click(object sender, EventArgs e){//认证开票,跳转到原始请求页面System"//authentication !--验证算法--machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" validation="SHA1" decryption="3DES" / compilation debug="true"/ 这里:authentication/forms节点最重要的两个属性是name和protection版本的,这里的加密/解密不要使用md5machineKey decryptionKey="8B6697227CBCA902B1A0925D00FAA00B353F2DF4359D2099" validation="MD5" validationKey="282487E295028E59B8F411ACB689CCD6F39DDD2146055A3EE480424315994760ADF21B580D8587DB675FA02F7916813044E25309CCCDB647174D5B3D0DD9141"/3,没有登录页的单点登录不需要代码 直接配置就可以了,配置如下复制代码 代码如下: authorizationdeny users="?"//authorizationauthentication mode="Forms"forms name="/Login"//authentication 4,登录模块从定向代码封装在httpModules中供其他系统直接调用,这里附上封装代码与引用方法: 复制代码 代码如下: public class SsoLoginRedirectModule : IHttpModule{public void Init(HttpApplication i_application){// TODO: Add UploadModule.Init implementation i_application.EndRequest += new EventHandler(i_application_EndRequest);} void i_application_EndRequest(object sender, EventArgs e){if ((HttpContext.Current.Response.StatusCode == 302) HttpContext.Current.Response.RedirectLocation.Contains(FormsAuthentication.LoginUrl)){HttpContext.Current.Response.RedirectLocation = FormsAuthentication.LoginUrl + "?ReturnUrl=" + HttpUtility.UrlEncode(HttpContext.Current.Request.Url.OriginalString);}}public void Dispose(){//throw new NotImplementedException();}}引用: 复制代码 代码如下: httpModulesadd name="SsoModule" type="SsoModule.SsoLoginRedirectModule, SsoModule"//httpModules
用java实现discuz PHP论坛一键登录
discuz的cookie生成算法远比你想的复杂。整合可以用ucenter,他提供了一个单点登录的代理功能。
discuz的插件安装详细教程!
卡片中心2.3使用了新的自动安装工具,很多朋友不大了解这个工具,造成安装中出现问题,在此我以卡片中心2.3的安装为例,详细介绍这个工具的使用方法:首先执行卡片中心安装的第一步和第二步然后开始详细讲解DZ插件安装工具的使用方法:1.安装工具的配置然后就是把我打包好的DZ插件安装工具下载下来(main.zip),里面已经有了卡片中心2.3的插件包把plugintool文件夹解压到论坛根目录下,打开plugintool/config.inc.php进行配置,配置方法如下CODE:?php$cfg['admin_username'] = 'admin';//把admin替换成你登陆插件安装工具的用户名$cfg['admin_password'] = 'admin';//把admin替换成你登陆插件安装工具的秘密$cfg['authkey'] = 'RANDOM.PRIVATE.AUTHKEY';//这里不要动?这一步骤非常重要,关系到你论坛的安全问题2.登陆DZ插件安装工具这里假设你论坛的网址是 ,访问 ,会出现登陆窗口。输入你刚才设置的用户名和密码,就可以成功登陆了。3.选择插件包登陆成功后来到如下界面点击 卡片中心 2.3 FOR D5 右侧的 [+] 按钮可以查看插件的详细信息,钩选卡片中心左侧的复选框,点击下一步4.文件修改(100%的买卡不成功均为在此处出错)之后来到程序文件升级界面,这时程序已经自动修改好了需要修改的文件,请务必点击 卡片中心 2.3 FOR D5 右侧的[+]查看文件修改情况。正常情况下应该是所有修改项均成功完成。如果有修改不成功的文件,再点击该文件名右侧的[+]查看出错位置,记下修改方法,待正常安装完成后再手动修改该文件。另外,不一定必须在该步下载升级文件包。我推荐在最后一步下载。查看修改情况OK之后继续下一步图:5.数据库升级来到数据库升级页面,可以看到数据库升级语句都在下面那个输入框里,里面存在乱码是正常的,不必担心。也不必把这些语句粘贴出来在DZ后台升级,你要做的只是单击 下一步6.导入插件信息,查看数据库升级情况这一步也是自动操作,SQL语句不会出错,导入插件信息的时候有可能出现问题,即提示你重复的标识符一类的。这是因为你安装过卡片中心。出现这种情况到DZ后台,插件设置,把卡片中心删除,然后手工导入plugintool/plugins/cardcenter.zip/plugin.txt内的插件信息即可。继续下一步7.收尾工作到这一步插件安装工具会自动提示你下载升级文件包,下载下来即可。然后通过FTP按目录结构覆盖到论坛根目录。然后点一下更新缓存。插件工具的安装过程就结束了然后升级主程序包中的sql.txt中的数据库语句,进行卡片中心安装的第四步和第五步,卡片中心就成功安装了.
如何利用ucenter实现单点登录
首先我们先来了解下 Ucenter登录步骤
1、用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证。
2、如果验证成功,将调用位于uc_client下client.php文件中的函数uc_user_synlogin,在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=$uid))。
3、然后这个函数后向Ucenter的index.php传递数据,index.php接受传递的数据,获得model为user,action为synlogin的值。
4、然后Ucenter的index.php调用control目录下的user.php类中的onsynlogin方法,通过foreach循环,以javascript的方式通知uc应用列表中开启同步登陆的应用进行同步登录;即通过get方式传递给各个应用目录中api下的uc.php一些数据。
5、uc.php接收通知并处理get过来的数据,并在函数synlogin(位于uc.php中)通过函数_authcode加密数据(默认以UC_KEY作为密钥),用函数_setcookie设置cookie。
6、各个应用用对应的密钥解码上面设置的cookie,得到用户id等数据;通过这个值来判断用户是否经过其它应用登录过,从而让用户可以自动登陆。
应用程序的logging.php ------uc_client中的client.php------Ucenter------应用程序中api/uc.php
其实Ucenter实现同步登陆的原理就是cookie,一个应用登陆成功之后,向Ucenter传递数据,让Ucenter通知其他的应用也设置cookie,这样用户在访问其他应用的时候通过已经设置好的cookie实现自动登陆。了解了Ucenter的同步原理,再遇到无法同步登陆,或者开发一些与UCenter接口的时候就会容易很多。
大致步骤 首先我们要先安装 ucenter 然后把uc_client 这个文件夹复制到自己的项目里面去 然后呢在配置几个文件
client.php相当于函数库
uc.php相当于回调文件
还有一个 config.inc.php 是配置文件
当你有2个应用都设置了同步登陆之后 当你登陆一个应用 然后执行
[php] view plain copy
include './config.inc.php';
include './uc_client/client.php';
$usernames="feiye";
$passwords="789123";
list($uid, $username, $password, $email) = uc_user_login($usernames, $passwords);
if($uid 0) {
setcookie("username",$username,time()+intval(24*3600));
echo uc_user_synlogin($uid);
echo '登录成功';
} elseif($uid == -1) {
echo '用户不存在,或者被删除';
} elseif($uid == -2) {
echo '密码错';
} else {
echo '未定义';
}
uc_user_synlogin() 这个函数 代表着 要同步登陆到其他所有开启同步登陆的函数 uc自己会在后台把所有开启同步登陆的应用都给循环遍历一遍 然后 在页面上输出
[html] view plain copy
script type="text/javascript" src=";code=14fdIufn%2B2YwkQlN9P07FEHOfZvDJupvgBgaRPn7R0DJmbEwCb23vKwO1uaeybLq3HZhtokoZrnqu7NGi09jzs684drFCbLDiSpKhk6P50MftBRA3vp4yIswhrPMl1dXo5ajB7CVZ9F8EI%2BkdFfq0E0rdyeRkuz8goeHhg" reload="1"/script
[html] view plain copy
script type="text/javascript" src=";code=07a91g8SepQwwfA3C1uN1sPhC4v6yuER1jFbVTQMK%2BQZmTkjwOz8X%2B8rWgNmKdhlXe9XXVQqAkDjN26CK6BMA19ZpLoiSW4wuNnxHAB9xXLt2VExuyf03MnEHAC%2BUdjwb58sbXGcYUpM4Bmzdm3Q92ObSp0Kk2qCd12fqg" reload="1"/script
类似这种的js代码 就是发送给每个开启同步登陆的应用 然后 每个开启同步登陆的应用 的 回调文件 uc.php 接受到后 会进行解密 解密好后 其实 你就可以自己来写代码了 这个uc.php回调文件的代码不一定非要按照他们的格式来写 你也可以自己写你自己的代码 比如说我就是根据session来做同步登陆的
[php] view plain copy
function synlogin($get, $post) {
$uid = $get['uid'];
$username = $get['username'];
if(!API_SYNLOGIN) {
return API_RETURN_FORBIDDEN;
}
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie('gwyy',$username,time()+3600,'/','127.0.0.71');
_setcookie('Example_auth', _authcode($uid."\t".$username, 'ENCODE'));
$_SESSION['username'] = $username;
$_SESSION['uid'] = $uid;
}
function synlogout($get, $post) {
if(!API_SYNLOGOUT) {
return API_RETURN_FORBIDDEN;
}
//note 同步登出 API 接口
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
_setcookie('Example_auth', '', -86400 * 365);
unset($_SESSION['username']);
unset($_SESSION['uid']);
session_destroy();
}
这样 当用户刷新了别的应用页面之后 就自动登陆了
discuz nt 单点登录怎么实现 我把论坛和CMS整合好了 在页面登陆后点击进入论坛又到论坛登录还得登一次??
1.保证数据库中CMS和论坛的用户表是同一张表
2.登录CMS之后保存的cookie要和论坛登录是统一的,否则不能保存登录状态。或者你用别的传值方式也可以,需要有人来帮你修改论坛源代码。
wordpress用ucenter插件同步discuz用户后,wordpress的评论也想要同步discuz用户怎么弄啊?
你只能最少花几千块钱找人二次开发了,不晓得你非要整合干什么,现在DZX都3.2版本了,wordpress的什么功能他没有,再从负载上来说,wordpress已经不是博客系统了跟discuz消耗的资源差不多。
建议直接在discuz开门户,开群组,抛弃wordpress,如果你非要同步评论的话技术上的工作量可是不小。
要么反过来抛弃discuz,wordpress也有BBS插件和buddypress可以选择,建议直接buddypress
discuz单点登录插件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于discuz论坛插件、discuz单点登录插件的信息别忘了在本站进行查找喔。