整合ucenter,实现discuz与python或者nodejs网站互通

栏目: Python · 发布时间: 6年前

内容简介:整合ucenter,实现discuz与python或者nodejs网站互通

主要实现是当你在自己开发的网站登录或者退出之后, discuz论坛也会同步登录和退出

1.ucenter通信,网上很多教程,所有语言开发的网站通信都是这样。如果安装了discuz3.2的话好像不能获得ucenter的配置信息,不过你可以在discuz的后台查询ucenter的配置信息。不赘述

2.当你把一些文件拷贝到你的项目的根目录下之后,注意config.inc.PHP里面的配置信息可都是discuz的信息,还要注意什么app_id撒的,按照网上的来吧

补充:如果一切都觉得没有问题  还是通信不成功  那就不用管了 个人认为这是一个坑,不用深究 ,按下面的方式

在应用目录下写测试脚本执行  查看得到的结果  如果能走通就不用管通信了

3.去http://www.discuz.net/thread-909678-1-1.HTML下载一份开发手册,解压打开developerguide/index.HTML查看api函数了解一下用户接口. 

1.用户注册integer uc_user_register(string username , string password , string email),传递3个参数username,password,email。我用的时Python,不可以直接用 PHP 的代码,当然也可以间接的在 Python 中调用PHP代码,不过处理有点麻烦,大家自行google。我就使用PHP的脚本调用,彻底分离2种语言,我就在项目的根目录下的uc_client下建立一个PHP_pro的目录并创建一个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); //获取脚本命令参数 $username = $argv[0];    $password = $argv[1]; $email = $argv[2]; //执行api函数 echo uc_user_register($username,$password,$email); ?>

写好了脚本,就可以在注册完之后执行脚本,也可以做任务队列(详见我的 Redis 任务队列).我用Python,执行脚本

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

如果是nodejs可以创建进程exec('PHP /usr/local/developer-wf/uc_client/PHP_pro/register.PHP '+username+' '+password+' '+email);  java撒的自行google或者百度, 这样你的discuz系统也会有你刚刚注册的用户

2.用户同步登陆

我们需求是当用户在我们公司网站登陆之后,在浏览器中另一个标签页中刷新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; };

调用同步登录函数时回返回$ucsyslogin变量打印 使用Python获取这个变量,该变量返回的是一个js,应该是操作cookie的js脚本

import commands result = commands.getstatusoutput('php /usr/local/developer-wf/uc_client/php_pro/logout.php') print result[1]

有可能你返回的js代码是空得,我也是按照网上的教材把我们下载的ucenter的developerguide的client和example下的api覆盖项目根目录下的uc_client的目录(你得先备份啊)以及api目录然后就好了。另外你得保证你ucenter的应用管理中有至少2个应用,一个是你本身的应用,这个通信成功还是比较容易的。然后你可以取出这个script里面的src再浏览器中执行以下 再刷新以下discuz论坛就登录上去了。这个就交给前端去执行吧(注意不用使用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; ?>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据化管理

数据化管理

黄成明 (@数据化管理) / 电子工业出版社 / 2014-7 / 59.90元

《数据化管理:洞悉零售及电子商务运营》讲述了两个年轻人在大公司销售、商品、电商、数据等部门工作的故事,通过大量案例深入浅出地讲解了数据意识和零售思维。作者将各种数据分析方法融入到具体的业务场景中,最终形成数据化管理模型,从而帮助企业提高运营管理能力。 《数据化管理:洞悉零售及电子商务运营》全部案例均基于Excel,每个人都能快速上手应用并落地。一起来看看 《数据化管理》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换