phpcms v9和discuz X3.1實現同步登陸退出論壇(已實現)


網絡上文章很多,按步驟配置好了之后phpcms可以同步登錄dz,但是dz登錄后狀態卻無法同步到phpcms,網絡上找了很多資料都大同小異,頭大。只能自己調試了,廢話不多說了。

      以下網絡上抄的安裝步驟,留着自己用,有安裝過的可跳過。
       第一步:安裝 phpcms V9 。安裝 Discuz! X3.1 (同時安裝 UCenter)。

     第二步:在 UCenter 中添加“phpsso 應用”。

     1、管理員登錄 Discuz! X3.1 管理中心,進入“UCenter”,點擊“應用管理”。
     2、點擊“添加新應用”按鈕,選擇安裝方式為”自定義安裝“。在展開的”添加新應用“參數配置表中,各項參數配置如下:

    應用名稱:phpsso
    應用的主 URL:http://localhost/phpcms/phpsso_server   (必填, phpcms 安裝路徑,視實際情況而定,最后不要帶斜線)
    應用 IP:(選填,正常情況下留空即可。如果由於域名解析問題導致 UCenter 與該應用通信失敗,請嘗試設置為該應用所在服務器的 IP 地址。)
    通信密鑰:(必填,phpcms 的通信密鑰必須與此設置保持一致,否則 phpsso 將無法與 UCenter 正常通信。)
    應用類型:其它(必選)
    應用的物理路徑:(選填,默認留空)
    查看個人資料頁面地址:(選填,URL中域名后面的部分,如:/space.php?uid=%s 這里的 %s 代表uid)
    應用接口文件名稱:(選填,默認為uc.php)
    標簽單條顯示模板:(選填,默認留空)
    標簽模板標記說明:(選填,默認留空)
    是否開啟同步登錄:是(可選,開啟同步登錄后,當用戶在登錄 Discuz! 時,同時也會登錄 phpcms 。)
    是否接受通知:否(可選)

    3、提交后,將生成新的應用ID。(記住這個應用ID,在”第三步“中將用到它。)
    4、進入后台“站長”,“UCenter 設置”選項。"是否允許直接激活"一項,選擇“是”。

第三步:配置 phpsso 。
    1、管理員登錄 phpcms V9 后台管理中心,進入“phpsso”,點擊“系統設置”。
    2、在“系統設置”下的“UCenter配置”一欄中,各項參數配置如下:
    
是否啟用:是
    Ucenter api 地址:http://localhost/discuz/uc_server     (必填,藍色字體部分為 Discuz! 安裝路徑,視實際情況而定,最后不要帶斜線)
    Ucenter api IP:(選填,一般不用填寫,遇到無法同步時,請填寫 UCenter 主機的IP地址)
    Ucenter 數據庫主機名:localhost     (必填,視實際情況而定)
    Ucenter 數據庫用戶名:root     (必填,視實際情況而定)
    Ucenter 數據庫密碼:root    (視實際情況而定)
    Ucenter 數據庫名:discuz     (必填,視實際情況而定)
    Ucenter 數據庫表前綴:`discuz`.pre_ucenter_     (必填,視實際情況而定。如果此項填寫錯誤,將導致 phpcms 無法注冊新會員!)
    Ucenter 數據庫字符集:UTF-8      (必選,視實際情況而定)
    應用id(APP ID):(必填,該值來在“第二步”中 UCenter 創建的 phpsso 應用時自動。)
    Ucenter 通信密鑰:(必填,一定確保該值與在“第二步”中 UCenter 創建的 phpsso 應用密鑰相同。)

   3、提交。

 第四步:查看通信狀態。
查看在 UCenter 中創建的 phpsso 應用與 UCenter 通信是否成功。
如果通信成功,則進行下一步。
  如果通信失敗,請檢查“第二步”與“第三步”中的各項參數配置是否正確。

第五步:備份 ./phpsso 。將 Discuz! X3.1 的 uc_client 復制到 phpsso_server/api/ 下,覆蓋原來的 uc_client 。

 第五步我我試了下,如果覆蓋的話,phpcms都無法同步登錄到dz,所以如果可以正常同步就忽略了。

第六步:修改 Discuz! 會員登錄相關
1、修改 template\default\member\login.htm 第 36 行,刪除
onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"

2、修改 template\default\member\login_simple.htm 第 3 行,刪除
onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"

3、修改 /source/function/function_message.php 第 78 行,查找
$param['header'] = true;
替換為:
$param['header'] = false;

以上配置內容晚上基本上可以實現phpcms與dz的同步了。dz同步還不一定。需要以下配置:

找到dz文件夾下的uc_client\data\cache\apps.php。找到該文件,看看是否只有一個

$_CACHE['apps'] = array (

  1 => 

  array (此處省略...),

  需要在此處添加我們剛剛創建的內容:

  2 => 

  array (

    'appid' => '2',

    'type' => 'phpcms主站',

    'name' => 'phpcms主站',

    'url' => 'http://127.0.0.1:82/phpcms/phpsso_server',

    'ip' => '',

    'viewprourl' => '',

    'apifilename' => 'uc.php',

    'charset' => '',

    'dbcharset' => '',

    'synlogin' => '1',

    'recvnote' => '1',

    'extra' => false,

    'tagtemplates' => '',

    'allowips' => '',

  ),

完成以上代碼應該就可以完美同步了。

 

來源:http://hycaiwanfu.blog.163.com/blog/static/453764201412710137952/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM