手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

ThinkSNS与Ucenter整合

首页 > PHP >

上回我写过一点thinksns与ucenter整合的注意事项,详情可见:thinksns在整合Ucenter的时候注意事项,今天我写的另外的一些注意点。

上回仅仅是做UCAPI接口的通讯以及同步登录和退出,因此完全没有涉及到系统模块。今天我要讲的是,如何修改系统自带的login,logout,register,changepwd以及后台的管理。

如果你将login,logout,register都交由第三方来托管,那么,本文的前几段你几乎可以忽略掉。仅看最后的changepwd以及后台管理的注意事项。

OK,让我们开始吧。判断是否登录,我这里不管了,请看我上篇文章吧。。

【注意】由于加载uc_client,会导到错误发生,原因查看:THINKPHP框架与Ucenter通讯注意事项,因此,我在thinksns的define.inc.php中,强行定义了uc_connect为空,这是一个常量,在这里定义后,在uc_config文件中又定义了一次。会出现一个notice,这个我们不用管。常量是不会被覆盖的。之所以这样做,我是有理由的。thinksns在整合Ucenter的时候注意事项一文中我说过,uc.php没有用到任何thinkSNS除api外的核心函数,因此也就没有加载THINKPHP框架,所以不会有THINKPHP框架与Ucenter通讯注意事项文中所说的base类的冲突。而我们现在涉及的则是在thinksns内部使用uc_client,那就不得不先定义uc_connect模式了。正是基于常量不会被覆盖,所以uc_config文件,就不需要被修改了。【方法有点野蛮,但我想应该可以接受】

1、login,系统的login和dologin函数都在IndexAction.class.php中,因此,改起来比较方便,但是需要动 /public/themes/中的apps.html模版,因为登录框在这个文件中。没办法,不改不行,uc不支持email登录,所以不得不把 email改为username。然后在dologin方法中,直接调用接口,判断用户是否存在,如果不存在则返回错误,存在的话就登录。登录时还要判 断,如果该用户在thinksns库中没有记录,则生成一条记录,用户信息由uc_get_user取回来。同时设定active为1,代表是已激活用 户。然后就是原始的登录流程,生成session生成cookie之类的了

2、logout,除了系统标准的logout外,还需要调用一下uc_user_synlogout,以便向其他应用发向退出系统的请求

3、register,如果属于偷懒情况,你可以把register引用到别的应用中【我是自己定义了一个user应用来接管所有的,注册、登录、退出的,所以1、2这些问题,其实我都可以忽略掉】

4、changepwd,这是在用户信息管理界面中的。主要问题也就在这里。如果你不改程序,那你会在这里吐血,因为如果你的用户是通过 ucenter过来的,那么password并非标准的md5(password),它的password是有salt的【salt你可以看一下 ucenter表。不想多解释】,因此chagepwd功能,你必须得完全改掉。判断原始密码是否正确,也必须先用uc_get_user获取用户的信息 后,把获取回来的密码与提交过来的原始密码比对。更改密码时也需要用uc_user_edit进行修改【其实可以两步并一步,因为 uc_user_edit的第二个参数就是oldpassword,如果oldpassword不正确,会返回错误代码的,也可以少做一步】,更改完后, 就是一个比较重要的一步:把你刚才设置的newpassword,重写回thinksns数据库,可能你会认为是多余的,因为很明显,我们前面的操作都是 直接读写ucenter的用户资料,根本没有涉及到本地thinksns用户数据库,为什么还要写回密码?这其实是因为下面的第5步

5、管理,如果你是新安装thinksns,那么或许你不会遇到我说的问题,但如果你是已经安装好,而迁移过来的thinksns,你会发现,你永 远登录不了管理界面,为啥?因为你登录前台时的密码是发给ucenter的,而登录后台时,密码是thinksns本地的。因此,你必须得通过 changepwd功能先修改一下密码,然后才能操作【所幸管理员不多,这样的问题也都还能够被接受。】

---

如果有什么问题,还是发到http://www.ucapi.com去比较好。呵呵。在这里,我就纯记录一下而己了。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: thinksns, ucenter

« 上一篇 | 下一篇 »

只显示10条记录相关文章

thinksns 不再开发了? (浏览: 33241, 评论: 4)
漫游(manyou)简介 (浏览: 27633, 评论: 1)
thinksns在整合Ucenter的时候注意事项 (浏览: 22559, 评论: 1)
四步实现客户软件与ucenter通讯 (浏览: 21750, 评论: 2)
ucapi手册 (浏览: 21560, 评论: 1)
框架开发一点小注意事项 (浏览: 21342, 评论: 1)
开发你的uc应用 (浏览: 20477, 评论: 0)
UCAPI.com再次恢复 (浏览: 16738, 评论: 0)
thinksns部分更新记录【自己更改的】 (浏览: 16509, 评论: 0)

发表评论

评论内容 (必填):