热度 2|
方法之一。当生成 uid 号码时预设一个初始值。(如第一个UCenter里初始值设为1,第二个UCenter里初始值设为一百万)。
方法之二。在Discuz数据库里人为区分(实时后续处理):假定你用的UCenter的数目不到十的话,那就在这些UCenter给的uid前加一位数。例如第一个UCenter里uid是3的用户可以看成在Discuz里的uid是13,而第二个Ucenter里uid是3的用户可以看成在Discuz里的uid是23。
第二种方法的好处。在于这样做的话只要改Discuz网站里的uc_client/client.php和api/uc.php这两个文件就够了,在其中加上两种uid之间的转换。
(1) 用户登录时也许要让他们选择UCenter
(2) 页面上显示用户名的地方也许要加上不同UCenter的标志。解决方法:最好是要求这些UCenter不能有同样的用户名。
每个UCenter都得带着各自的uc_client。每个UCenter都将其它所有的UCenter加在它的外部应用列表里,这样它们才能互相联系。当一个UCenter要查询某用户名是否存在于另一个UCenter时,就调用对方的uc_client里client.php的函数uc_user_checkname就行了
ludi99: 我得再消化一下“应用”的概念。尤其对UCenter里的“应用列表”的作用和管理方式,请天香做些讲解.
是否可以这样提问,为什么UCenter里需要记录应用呢?从用户 ...
天香公主: 我前面提出的解决方案(第一段)是针对多个新系统的情形。如果是解决多个现有的用户数据库系统,这样做需要改动数据(如改动所有的Discuz数表里的uid),虽然可 ...
天香公主: 对,是指这样的应用,与插件无关。
第二段是说如何确保几个UCenter里没有同样的用户名吧?要做到这点,我觉得这些UCenter都得互相成为对方的应用,但是它们可以 ...
ludi99: 这里的“应用”是指外部应用吧?像东风博说的品牌空间,有独立的数据库。仅仅和Discuz论坛分享UCenter用户管理。换句话说,它不是插件plugin那种类型的应用。
...
天香公主: 上个周末看了下UCenter的代码,觉得很有意思的。
补充下第二个问题。估计每个UCenter都得带着uc_client,每个UCenter都将其它所有的UCenter加在它的应用列表里 ...
东风: 我是来打酱油的, 一看代码就晕,先预祝大侠们早日成功!!
ludi99: 好建议!
我把你的想法加到了博文里。我特意改动了一些措词,便于考察我的理解是否和你的想法相同。如有理解错误或有更好的表达方式务请指正。
我个人倾向于第 ...
天香公主: 终于明白你想要做的事了,你是要一个Discuz网站支持多个UCenter管理的用户。我觉得要在Discuz数据库里设法区分下不同UCenter里的用户uid。如果这些UCenter都是你 ...
Powered by Discuz! X3.1
© 2001-2014 Comsenz Inc.
GMT-4, 2024-3-28 06:08 PM
, Processed in 0.025243 second(s), 10 queries.
,ApcOn