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