欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-08 12:05:00
...
与注册一样,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教程有兴趣的朋友有所帮助。