ucenter与应用集成中如何处理用户注册与修改密码

ucenter作为用户中心与自己的应用集成的过程中,最愁人的就是用户修改密码与注册了
最近在做这方面的工作,总结一下,


ucenter与destoon的集成,这个具体的教程在destonn的官方网站中有介绍,我就不说了,
ucenter与ecmall的集成,这个也很方面,放一个integrate目录就可以了,
ucenter与smarket的集成,这个是没有在别人的基础上进行的开发


第一种注册:
destoon:做好配置好,destoon注册了就可以直接进入的ucenter的用户中心了,
ecmall可以做到这一点,ecamll结果就直接做了两个类,他们都继承自BasePassportUser这个类,然后根据你自己的配置
去选择实例哪个类,使用哪个接口
smarket这个,就好说了,完全使用ucenter中的数据就可以了




第二在ucenter中修改密码
在ucenter中修改密码之后,需要通知到用户修改密码了,要及时更新密码,
这一点,比较困惑我,因为我看到ucenter的通知都是单身通知,并且后边都没有加密码是什么内容,
UC后台更改密码后的通知程序:uc_server\control\admin\user.php  
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');


然后这个过程由客户端去实现,在destoon中我发现客户端是这样实现的,只写了一句退出exit('1');
根本没有去实现这个过程,

而在discuz中,这个地方,也是生成一个随机的密码,就过去了,为什么不把密码传递过来呢对吧,

具体为会不把这个值传递过来的原因在这里

http://blog.csdn.net/sunbingzibo/article/details/43733267



这时如果我们以destoon为主要使用对象的话,比如客户在destoon的商务中心修改了密码,这时在ucenter中的密码并没有修改,那么登录时使用哪个密码呢

 我没有找到相关的解决办法,去discuz中看了一下,发现discuz中只修改一次密码就可以了

原来ucenter中修改密码的那个地方,他调用了
$ucresult = uc_user_edit(addslashes($_G['username']), $_GET['oldpassword'], $_GET['newpassword'], '', $ignorepassword, $_GET['questionidnew'], $_GET['answernew']);

这个函数,直接把密码就修改到ucenter中至于本地的密码改不改都无所谓了,反正又不用它来登录


所以按照上边的方法,我们来对destoon进行改造,在我使用的5.0的版本中

在/module/member/edit.inc.php中找到

 

if($do->edit($post))
{

	if ($post['password'])
	{
		include DT_ROOT.'/api/ucenter/client.php';
		$ucresult = uc_user_edit($post['passport'] , $post['oldpassword'], $post['newpassword'], $post['email'] );
		define("UC_DBHOST", $MOD['uc_dbhost']) ;
		 .......

		    if ($ucresult == -1)
		    {
			$mess= "profile_passwd_wrong";
			message($mess);
			// showmessage('profile_passwd_wrong', '', array(), array('return' => true));

		    } elseif ($ucresult == -4)
	.........//从别的地方复制的代码.
	}
}

这样进行改造一下,就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值