网站 discuz 同步登录

版权声明:原创文章转载请附带www.phpnote.net https://blog.csdn.net/koobee_1/article/details/45338531

最近做了一个微网站的项目,但是要整合discuz,能实现在微网站登录之后,discuz同步登录。

刚开始做的时候,第一个想到的就是curl模拟登录,最后登录也成功了,但是本地一直显示的是未登录状态,最后了解到原来discuz的登录状态是保存在cookie中的,所以模拟登录之后,cookie存在服务器上,而本地是没有保存的。(应该有一种方法把服务器上 的cookie保存到本地,然后应该就会处于登录状态,由于时间 紧迫,就没有继续深究)

因为当时注册时,就是用的iframe将注册页面加载到注册页,然后实现的微网站的注册会员和bbs的注册会员同步,而且两个模块的表数据互不关联,可以实现随时分离。

后来就想,登录是不是也可以用注册的方法,用iframe 将bbs的登录页面加载到微网站的登录页中,然后通过js获取到相应的表单信息,用ajax提交给论坛的登录处理页,这个前提是bbs和微网站是在一个域下面。最后轻松实现一次登录,微网站和论坛都能使用。

需要注意的是手机端的登录页面和PC端的登录页面不一样。


var bbsLoginForm = $(window.frames["bbsframe"].document).find("#loginform");  //跨页面访问<span style="font-family: Arial, Helvetica, sans-serif;">iframe中的元素</span>
var loginUrl = bbsLoginForm.attr("action");
var formhash = bbsLoginForm.find("#formhash").val();
var referer = bbsLoginForm.find("#referer").val();
var fastloginfield = "username";
var cookietime = bbsLoginForm.find("[name=cookietime]").eq(0).val();
var username = phone;
var password = pwd;
var questionid = "0";
var answer = '';
var submit = "true";
$.ajax({
	url     : "{ling:C('BBS_URL')}"+loginUrl,
	dataType: "text",
	type    : "post",
	data    : {
			formhash		:formhash,
			referer			:referer,
			fastloginfield	:fastloginfield,
			cookietime		:cookietime,
			username		:username,
			password		:password,
			questionid		:questionid,
			answer			:answer,
			submit			:submit
		<span style="white-space:pre">	</span>},
	async: false,
	success    : function(backdata){
		//setTimeOut(function(){},2000);
	},
					
});


猜你喜欢

转载自blog.csdn.net/koobee_1/article/details/45338531