discuz! X3.2 论坛修改密码不同步UCenter

来源:互联网 发布:java交换数组元素位置 编辑:程序博客网 时间:2024/05/16 08:22

与注册一样,discuz修改密码是单向修改,不会主动通知其它应用站点。要实现此功能只能改UCenter的机制,下面给出步骤:


修改一:UC后台更改密码后的通知程序:主目录/uc_server/control/admin/user.php 277行
将:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
更改为: 
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$orgpassword);


修改二:UC通知程序:主目录/uc_server/control/user.php 99行
将:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
更改为: 
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$newpw);


修改三:主目录/uc_client/control/user.php 第99行
将:

$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');

更改为:

$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$newpw);


以上修改只能让discuz同步UCenter,而不能通知其它的应用站点,要想达到在论坛修改密码后,在应该站点也可以使用的话需要修改应用站点的登录机制。


我暂时使用的方法是:应用站点登录的时候先用帐号密码验证在论坛是否可以登录(uc_user_login方法可以实现,具体请查看UCenter接口开发手册),如果可以登录,那就更新应用站点的密码为输入的密码,如果不能登录,那就提示用户密码错误,这样也可以实现相同的功能,只不过应用站点要多浪费点代码。

如果有更好的方法再来更新!!


原文地址:http://gys115.cn/blog/?p=144  转载请注明出处!!

0 0
原创粉丝点击