与注册一样,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接口开发手册),如果可以登录,那就更新应用站点的密码为输入的密码,如果不能登录,那就提示用户密码错误,这样也可以实现相同的功能,只不过应用站点要多浪费点代码。
如果有更好的方法再来更新!!
以上就介绍了discuz! X3.2 论坛修改密码不同步UCenter,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。