`
bask
  • 浏览: 145890 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

discuz 单点登录的另一种方法

    博客分类:
  • php
阅读更多
discuz 单点登录 其他人做法 还真不清楚
当初我的第一个方案是模拟登录 保存cookie信息,但失败了 具体问题也就没看了
第二方法也就是很简单的方法了 直接隐藏表单提交
如果有自己服务器的朋友 可以使用 memcache 来做 那样会更方便点
比如在memcache保存 用户名和密码
当在java 或 php 等连接到discuz前 先进入到这个php(比如:login)
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录中...</title>
</head>
<body>
<div style="display:none">	
<form method="post" id="login" name="login" action="logging.php?action=login&amp;">
<input type="hidden" name="formhash" value="ef83ae73" />
<input type="hidden" name="referer" value="index.php" />
<div class="mainbox formbox">
	<span class="headactions"><a href="faq.php?action=message&amp;id=3" target="_blank">登录帮助</a></span>
	<h1>会员登录</h1>
	<table summary="会员登录" cellspacing="0" cellpadding="0">
				<tr>
			<th onclick="document.login.username.focus();">
				<label><input class="radio" type="radio" name="loginfield" value="username" tabindex="2" checked="checked" />用户名</label>
				<label><input class="radio" type="radio" name="loginfield" value="uid" tabindex="3" />UID</label>
			</th>
			<td>
				<input type="text" id="username" name="username" size="25" maxlength="40" tabindex="4" />
				<a href="register.php">立即注册</a>
			</td>
		</tr>
		<tr>
			<th><label for="password">密码</label></th>
			<td>
				<input type="password" id="password" name="password" size="25" tabindex="5" />
				<a href="member.php?action=lostpasswd">忘记密码</a>
			</td>
		</tr>
		<tr>
			<th><label for="questionid">安全提问</label></th>
			<td>
				<select id="questionid" name="questionid" tabindex="6">
					<option value="0">无安全提问</option>
					<option value="1">母亲的名字</option>
					<option value="2">爷爷的名字</option>
					<option value="3">父亲出生的城市</option>
					<option value="4">您其中一位老师的名字</option>
					<option value="5">您个人计算机的型号</option>
					<option value="6">您最喜欢的餐馆名称</option>
					<option value="7">驾驶执照的最后四位数字</option>
				</select>
			</td>
		</tr>
		<tr>
			<th><label for="answer">回答</label></th>
			<td><input type="text" id="answer" name="answer" size="25" tabindex="7" /> 如果您设置了安全提问,请回答正确的答案</td>
		</tr>
		<tr>
			<th>登录有效期</th>
			<td>
				<label><input class="radio" type="radio" name="cookietime" value="315360000" tabindex="8"  /> 永久</label>
				<label><input class="radio" type="radio" name="cookietime" value="2592000" tabindex="9" checked="checked" /> 一个月</label>
				<label><input class="radio" type="radio" name="cookietime" value="86400" tabindex="10"  /> 一天</label>
				<label><input class="radio" type="radio" name="cookietime" value="3600" tabindex="11"  /> 一小时</label>
				<label><input class="radio" type="radio" name="cookietime" value="0" tabindex="12"  /> 浏览器进程</label>
			</td>
		</tr>
		<tr>
			<th><label for="loginmode">隐身登录</label></th>
			<td>
				<select id="loginmode" name="loginmode" tabindex="13">
					<option value="">- 使用默认 -</option>
					<option value="normal"> 正常模式</option>
					<option value="invisible"> 隐身模式</option>
				</select>
			</td>
		</tr>
		<tr>
			<th><label for="styleid">界面风格</label></th>
			<td>
				<select id="styleid" name="styleid" tabindex="14">
					<option value="">- 使用默认 -</option>
					<option value="1">默认风格</option>
<option value="2">喝彩奥运</option>
<option value="3">深邃永恒</option>
<option value="4">粉妆精灵</option>
<option value="5">诗意田园</option>
<option value="6">春意盎然</option>
				</select>
			</td>
		</tr>
		<tr>
			<th>&nbsp;</th>
			<td><button class="submit" type="submit" id="loginsubmit" name="loginsubmit" value="true" tabindex="100">提交</button></td>
		</tr>
	</table>
</div>
</form>
</div>
<script>
	function u_login(v_anme,v_pass) {
		document.getElementById("username").value = v_anme;
		document.getElementById("password").value = v_pass;
		document.getElementById("loginsubmit").click();
	}
</script>
</body>
</html>
<?php
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./include/misc.func.php';
if($discuz_uid) {
		echo "<script>location.href='index.php'</script>";
} else {
	$ticket = $_GET['ticket'];
	if(isset($ticket) && trim($ticket != "")) {
		require_once './plugins/memcached-client.php';
		$options = array(
					'servers' => array('localhost:11211'),
					'debug' =>false,
					'compress_threshold' => 10240, 
					'persistant' => false);
		$mc = new memcached($options);
		$val = $mc->get($ticket);
		if($val == "") {
			//跳转到登陆页面
			echo "Ticket为空";
			//echo "<script>location.href='index.php'</script>";
		} else {
			$values = explode(",",$val);
			echo "<script>u_login('".$values[0]."','".$values[1]."');</script>";
		}
	} else {
		//跳转到登陆页面
		echo "需要跳转到登陆页面";
		//echo "<script>location.href='index.php'</script>";
	}
}
?>
分享到:
评论

相关推荐

    UCenter+MediaWiki+Discuz X2实现单点登录

    在IT领域,单点登录(Single Sign-On,简称SSO)是一种身份验证机制,它允许用户使用一组凭证登录系统后,无需再次认证即可访问多个相互关联的应用或服务。本话题将详细探讨如何通过UCenter、MediaWiki和Discuz X2这...

    Discuz!NT3.1整合 单点登录

    NT3.1整合 单点登录"是一个涉及用户身份验证、会话管理、跨域通信等多个技术领域的复杂过程,需要对Discuz!NT的API接口、.NET编程以及Web安全有深入理解。提供的压缩包资源可以帮助用户更好地理解和实施这一过程,...

    Discuz论坛模拟单点登录的测试小程序代码

    Discuz论坛模拟单点登录的测试小程序代码,数据库文件在src目录下,自行下载discuz论坛安装部署启动后,配置好config.properties的相关参数即可,该程序可以完成向discuz论坛注册用户和单点登录功能。关于discuz相关...

    java_to_discuz单点登录手册.xls

    java_to_discuz单点登录手册

    ASP.NET二次开发Discuz,单点登录等功能。

    在本文中,我们将深入探讨如何进行ASP.NET对Discuz的二次开发,特别是实现单点登录(Single Sign-On, SSO)功能,以及同步注册和退出。首先,我们需要了解Discuz论坛系统,它是一个基于PHP和MySQL的开源社区平台,...

    discuz x2.5和cas集成,实现cas单点登录 sso

    X2.5与CAS(Central Authentication Service)集成是一种常见的身份验证解决方案,它能够实现单点登录(Single Sign-On, SSO)功能。在SSO系统中,用户只需登录一次,就可以在多个相互独立的应用系统之间自由切换,...

    简单实现单点登录discuz

    把文件放在论坛根目录下(bbs)

    discuz注册同步单点登录

    通常,单点登录(Single Sign-On, SSO)是通过中央认证服务(如UCenter)来协调各个子系统,使得用户只需一次登录操作就能访问所有关联的应用。 【描述】中提到,当Discuz进行系统集成时,遇到的问题是在用户注册时...

    discuz x2.5和cas集成,一键登录

    Discuz X2.5是一款非常流行的社区论坛软件,而CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议,广泛应用于多应用系统中,以实现用户只需一次登录即可访问所有系统。...

    网站和discuz登录、注册、退出整合讲解

    1. 单点登录(SSO):网站与Discuz的退出操作需要考虑单点登录,即用户在一处退出,其他关联地方同时注销登录状态。这通常涉及到session管理,确保用户在网站上退出时,Discuz论坛的登录状态也被清除。 2. API调用...

    脱离discuz; 获取discuz登录信息程序 适合于网站和discuz登录整合

    获取discuz登录信息程序, 也适合于其他类型的网站和discuz登录整合。 2、2006年写的今天升了一下级, 仔细研究一下, 可以嵌入自己的网站代码里实现同步登录。 也可以独立使用注释明确。 3、感谢我自己supFire...

    discuz二次开发登录验证原理

    中,还可以实现多个站点之间的认证共享,即所谓的“单点登录”(Single Sign-On, SSO)。通过配置Ucenter(一个由Comsenz提供的统一认证中心),可以实现用户在一个站点登录后,在其他关联站点也能自动登录的效果。...

    网站和discuz登录、注册、退出的整合讲解

    登录整合的关键在于实现单点登录(Single Sign-On, SSO)。当用户在网站上登录后,他们也应该能够在Discuz!论坛上自动登录,反之亦然。这通常通过共享session或cookie来实现。你可以创建一个中间件,检查用户的...

    DISCUZ论坛后台管理员登录后会自动退出登录的解决方法

    DISCUZ论坛后台管理员登录后会自动退出登录的解决方法

    discuz 北岸QQ登录 增强版2.2

    北岸QQ登录增强版2.2正是基于这一服务,为Discuz! 论坛提供了无缝集成的解决方案。它通过调用QQ互联的开放接口,实现了用户授权、信息同步以及登录验证等功能,让用户在不需创建新账号的情况下,即可轻松访问论坛。 ...

    discuz微信登录插件西瓜微信超级好用微信授权登录一次搞定支持手机版

    Discuz微信登录插件是一款专为Discuz论坛系统设计的扩展功能,旨在简化用户登录流程,通过微信授权实现一键快捷登录。这款插件名为“西瓜微信超级好用”,表明其在用户体验方面做了优化,旨在提供高效、便捷的微信...

    discuz的论坛登录、注册、退出与其他网站集成 讲解

    2. 单点登录(SSO):通过配置Discuz的Ucenter,可以实现单点登录功能。当用户在主站登录后,无需再次输入密码即可访问论坛。这需要在Ucenter后台设置应用ID、密钥,并调整相关配置文件。 3. OAuth认证:如果你的...

    discuz 超级工单系统 主程序1.2.1含手机触屏版1.0

    Discuz超级工单系统是一款基于Discuz论坛平台的插件应用,主要功能是提供一个高效、便捷的工单处理机制,以帮助网站管理员或服务团队更好地管理用户的问题和请求。这款系统版本为1.2.1,同时包含了手机触屏版1.0,...

    discuz-ucenter-api-for-java

    Comsenz(康盛)的 UCenter 当前在国内的单点登录领域占据绝对份额,其完整的产品线令 UCenter 成为了账号集成方面事实上的标准。基于 UCenter,可以将 Comsenz 旗下的 Discuz!(社区论坛系统)、SupeSite(门户CMS...

    单点登录 Ucenter示例分析

    单点登录是一种用户在多个应用系统中访问受限资源时只需要进行一次认证就可以访问所有经过授权的应用系统的技术。在Ucenter的场景下,意味着用户只需在Ucenter登录一次,就可以无需重复认证直接访问所有与其同步的子...

Global site tag (gtag.js) - Google Analytics