天天看點

discuz! X3.2 論壇修改密碼不同步UCenter

與注冊一樣,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  轉載請注明出處!!