與註冊一樣,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教學有興趣的朋友有幫助。