用户
 找回密码
 入住 CI 中国社区

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 1260|回复: 1
收起左侧

[高级] CI整合discuz-顺带解决了通信失败原因-nginx版本

[复制链接]
发表于 2014-8-21 15:44:10 | 显示全部楼层 |阅读模式

由于nginx的rewrite规则和apache不一样,造成了nginx下的一些规则不一样,一步步的来。
没权限发图,就先一步步写出来。

首先,基本的设置都已经做好了:内容如http://codeigniter.org.cn/forums ... hread&tid=17569,虽然给我的感觉是hex根本不知道什么是什么,回答的模棱两可。

首先,第一步,UC后台有个应用管理,这里其实是请求一个地址,如果返回为1则验证成功。

后台的请求地址如下:
GET /api/uc?time=1408605690&code=1672ubcWuY8b0pH8nuCx8NTfcrODPgMSF3xxxxixLHHC7u4zZGrCFDrTuiKJWKBQ5p9tiZ1AJ0T6vFg
假如CI的路径是:http://ci.doohui.com,那么Ucenter则会在后台请求如上的地址,结合起来就是:
http://ci.doohui.com/api/uc?time=1408605690&code=1672ubcWuY8b0pH8nuCx8NTfcrODPgMSF3xxxxixLHHC7u4zZGrCFDrTuiKJWKBQ5p9tiZ1AJ0T6vFg,如果返回是1,那么就是成功,如果不是,自己下断点。


如果这一步已经完成了,那么恭喜你,下面一步更简单:如何同步登录记录。
解决起来很简单:
找到uc_client/client.php 找到uc_user_synlogin()这个函数,然后在count($_CACHE['apps'])>1 修改成 count($_CACHE['apps'])>=1。


然后登录成功会出现如下的返回数据:

<script type="text/javascript" src="http://ci.doohui.com//api/uc?time=1408606349&code=1b1cOJzPrY8WqxKRsr1vlgP%2FSkweW2Db1PjzBJwsfPJhcTAV0vC%2FbY%2BKJ2g3kXaDBWRpaER0lVZOlgGwnGrNXvW6zmqUas8BSnEHB6g33N0LChTMtksDC9wbtE49UAEbTV%2FhYx0eDFk8Nql1tMviSNsK7eO6LbriySGMRw" reload="1"></script>


cookie就是在这步同步的。

如果您还有兴趣,之所以同步不成功,是没有返回这段的js代码,原因自己加断点之后发现就在这里:
uc_user_synlogin()这个函数,然后在count($_CACHE['apps'])>1 ,在data/cache/apps.php 里默认的配置文件只有一个,也就是>1永远不成立。没有这段js返回就不会去请求uc,就无法重置cookie啦。


如果还有问题,请发邮件到anven.cullen@gmail.com



评分

参与人数 1威望 +5 收起 理由
Hex + 5 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

发表于 2014-8-21 17:16:18 | 显示全部楼层
我确实没有验证过这个教程,因为我也不是作者,我只是转载。
还请作者本人来回答比较好。

另外,感谢楼主的分享。

本版积分规则