整合ucenter,實現(xiàn)discuz與python或者nodejs網(wǎng)站互通

主要實現(xiàn)是當(dāng)你在自己開發(fā)的網(wǎng)站登錄或者退出之后, discuz論壇也會同步登錄和退出

1.ucenter通信,網(wǎng)上很多教程,所有語言開發(fā)的網(wǎng)站通信都是這樣。如果安裝了discuz3.2的話好像不能獲得ucenter的配置信息,不過你可以在discuz的后臺查詢ucenter的配置信息。不贅述

2.當(dāng)你把一些文件拷貝到你的項目的根目錄下之后,注意config.inc.php里面的配置信息可都是discuz的信息,還要注意什么app_id撒的,按照網(wǎng)上的來吧

?補(bǔ)充:如果一切都覺得沒有問題 ?還是通信不成功 ?那就不用管了 個人認(rèn)為這是一個坑,不用深究 ,按下面的方式

在應(yīng)用目錄下寫測試腳本執(zhí)行 ?查看得到的結(jié)果 ?如果能走通就不用管通信了

3.去http://www.discuz.net/thread-909678-1-1.html下載一份開發(fā)手冊,解壓打開developerguide/index.html查看api函數(shù)了解一下用戶接口.?

? ? 1.用戶注冊integer uc_user_register(string username , string password , string email),傳遞3個參數(shù)username,password,email。我用的時python,不可以直接用php的代碼,當(dāng)然也可以間接的在python中調(diào)用php代碼,不過處理有點麻煩,大家自行g(shù)oogle。我就使用php的腳本調(diào)用,徹底分離2種語言,我就在項目的根目錄下的uc_client下建立一個php_pro的目錄并創(chuàng)建一個register.php的腳本

<?php

//引入文件,我的項目目錄是developer-wf

include('/usr/local/developer-wf/config.inc.php');

include('/usr/local/developer-wf/uc_client/client.php');

array_shift($argv);

//獲取腳本命令參數(shù)

$username = $argv[0]; ??

$password = $argv[1];

$email = $argv[2];

//執(zhí)行api函數(shù)

echo uc_user_register($username,$password,$email);

?> ?

寫好了腳本,就可以在注冊完之后執(zhí)行腳本,也可以做任務(wù)隊列(詳見我的redis任務(wù)隊列).我用python,執(zhí)行腳本

import os

os.popen('php /usr/local/developer-wf/uc_client/php_pro/register.php '+username+' '+password+' '+email)


如果是nodejs可以創(chuàng)建進(jìn)程exec('php /usr/local/developer-wf/uc_client/php_pro/register.php '+username+' '+password+' '+email); ?java撒的自行g(shù)oogle或者百度, 這樣你的discuz系統(tǒng)也會有你剛剛注冊的用戶


2.用戶同步登陸

? ? ? ?我們需求是當(dāng)用戶在我們公司網(wǎng)站登陸之后,在瀏覽器中另一個標(biāo)簽頁中刷新discuz論壇,那么改用戶就登陸了,只需要登陸一次 ?向上面那樣,寫php腳本

include('/usr/local/developer-wf/config.inc.php');

include('/usr/local/developer-wf/uc_client/client.php');

array_shift($argv);

$username = $argv[0];

$password = $argv[1];

list($uid, $username, $password, $email) = uc_user_login($username,$password);

//echo $uid>0;

if($uid>0){

#echo "login success";

$ucsyslogin = uc_user_synlogin($uid);

print $ucsyslogin;

};

調(diào)用同步登錄函數(shù)時回返回$ucsyslogin變量打印 使用python獲取這個變量,該變量返回的是一個js,應(yīng)該是操作cookie的js腳本

import commands

result = commands.getstatusoutput('php /usr/local/developer-wf/uc_client/php_pro/logout.php')

print result[1]

有可能你返回的js代碼是空得,我也是按照網(wǎng)上的教材把我們下載的ucenter的developerguide的client和example下的api覆蓋項目根目錄下的uc_client的目錄(你得先備份啊)以及api目錄然后就好了。另外你得保證你ucenter的應(yīng)用管理中有至少2個應(yīng)用,一個是你本身的應(yīng)用,這個通信成功還是比較容易的。然后你可以取出這個script里面的src再瀏覽器中執(zhí)行以下 再刷新以下discuz論壇就登錄上去了。這個就交給前端去執(zhí)行吧(注意不用使用2個頂級域名通信)


3.用戶同步退出與上面一樣貼一下代碼

<?php

include('/usr/local/developer-wf/config.inc.php');

include('/usr/local/developer-wf/uc_client/client.php');

$synlogout = uc_user_synlogout();

print $synlogout;

?>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、項目目標(biāo) 搭建一個高可用web集群網(wǎng)站 二、項目規(guī)劃 2.1 ip地址規(guī)劃 2.2 拓?fù)鋱D 2.3 相關(guān)說明 ...
    夏日之光閱讀 4,293評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,661評論 19 139
  • 1.LAMP介紹 ? LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹閱讀 1,242評論 0 1
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 2,052評論 0 3
  • (描述不對的地方望包涵指正)任務(wù)隊列是講要處理的任務(wù)放在隊列中按順序執(zhí)行,可以將耗時的或者是不需要前端知道的任務(wù)與...
    lpj24閱讀 4,471評論 1 10

友情鏈接更多精彩內(nèi)容