2019独角兽企业重金招聘Python工程师标准>>>

PHPCMS整合UCENTER后我们会经常有修改用户密码问题,你会发现如果在Ucenter中直接修改密码后,PHPCMS用新密码无法登陆了。其实这是因为密码没同步的原因,下面讲解下登陆流程:

登陆会调用module/member/index.php的login方法

如果开启了PHPSSO,则会调用$status = $this->client->ps_member_login($username, $password);

ps_member_login这个方法在  module/member/class/client.class.php中

这个方法会调用$this->_ps_send('login', array('username'=>$username, 'password'=>$password));

private function _ps_send($action, $data = null) {

return $this->_ps_post($this->ps_api_url."/index.php?m=phpsso&c=index&a=".$action, 500000, $this->auth_data($data));

}

通过这个方法可以看出这个方法会通过phpsso_server/index.php/phpsso/index.php文件LOGIN方法来判断登陆情况。现在就有几种情况,

首先这个方法会通过list($uid, $uc['username'], $uc['password'], $uc['email']) = uc_user_login($this->username, $this->password, 0);获取$uid,于此同时会查询pre_phpsso_member表中的userinfo记录。

1、如果userinfo有记录并且开启了uc于此同时uid没有则代表,ucenter中没有数据,则用用户密码密码注册一遍。于此同时将ucuerid更新到  pre_phpsso_member表中

2、如果userinfo没记录并且开启了uc于此同时uid有记录,则表示在ucenter注册了,但在phpsso没注册,则往  pre_phpsso_member中插入数据。

3、如果  userinfo没记录并且开启了uc于此同时uid没记录,则直接exit(-1),用户不存在了

4、如果userinfo没记录并且没开启uc直接  exit(-1),用户不存在了

现在到了最后一步,也是前面说的为什么在ucenter中修改密码后会提示密码错误了

if(   !empty($userinfo) && $userinfo['password'] == create_password($this->password, $userinfo['random'])) {

//登录成功更新用户最近登录时间和ip

$this->db->update(array('lastdate'=>SYS_TIME, 'lastip'=>ip()), array('uid'=>$userinfo['uid']));

exit(serialize($userinfo));

} else {

exit('-2');

}

大家可以看到这一步会将pre_phpsso_member中的密码跟传递过来的密码进行校对,也就是说如果登陆时输入的密码如果跟pre_phpsso_member不一致,哪怕ucenter校验通过了,这里依然会报告密码错误但是ucenter会正常登陆。

总结:由以上可知,我们在做大型门户的经常会碰到多系统的问题,一般情况下会整合UCENTER,挂N个系统,论坛,百科,新闻系统,人才系统……,二三十个系统也可能不在话下,这个时候我们会经常发现用户名虽然同意了,但是密码是没统一的情况,

转载于:https://my.oschina.net/u/1186749/blog/616622

PHPCMS整合UCENTER后登陆问题相关推荐

  1. ucenter base.php,phpcms整合ucenter问题集

    1.整合 UCenter 后,Discuz! 注册会员在 phpcms 中为什么不显示昵称? 答:这是因为 Discuz! 只有"用户名",没有"昵称"的概念. ...

  2. php云人才系统 怎么整合ucenter,phpcms如何整合UCenter

    无忧主机小编经常遇到客户需要一个网站建立多个系统.这样功能固然强大,但是如果没有一个有效的整合平台把这些零散的网站客户聚集起来,很容易出现问题.况且网站的客户不能实现同步登陆,换一个平台就要再登陆一遍 ...

  3. [转]网站整合Ucenter详细流程

    最近公司项目要用到SNS,在具体采取解决方案上面由于项目由一实力较强的外包公司做,所以没有采用商业解决方案.不过本人一直比较看好康盛的产品,因为被外派到外包公司去负责项目,尽管以前用的SNS也在不少, ...

  4. windows下整合UCenter、ECShop、Discus

    http://blog.csdn.net/lwx2615/article/details/6117941 安装环境:windows WampServer 2.1c [28/12/10]  Inclus ...

  5. 网站整合Ucenter详细流程

    第一步:下载安装UCenter,这里就不详细说了,网上很多教程   1.下载UCenter 下载地址:   2.安装UCenter   第二步:打开下载UCenter文件夹内的advanced文件夹, ...

  6. Phpcms:整合文档

    phpcms整合discuz 首先进入网站后台 打开系统设置-->基本配置-->通行证 是否启用通行证:选"是" 整合文件:选"discuz" 接口 ...

  7. discuz论坛整合ucenter免激活,同步登录,同步退出解决方案(附源码)

    UCenter作为整合用户的这样一个开源插件,对于PHP开发的,甚至其它开发语言如.net,java.asp等开发人员解决多个项目整合到一起,用户进行同步登录,同步退出等,同步消息等都是非常有用的.下 ...

  8. SSM整合Shiro进行登陆认证和授权详细配置

    本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...

  9. php ucword,ThinkPHP3.1.2整合UCenter详解(二)

    在ThinkPHP3.1.2整合UCenter详解(一) 中我们安装完了WBlog3.1.2.UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后.接下来接着上一篇讲 ...

最新文章

  1. linux 内核生成
  2. 如何安装,卸载eclipse中的ADT,或者更新ADT
  3. Elasticsearch之search搜索入门
  4. 分布式之延时任务方案解析
  5. [vue] 说说你对vue的template编译的理解?
  6. 微软全新Chromium版Edge浏览器下载
  7. 万字长文!不为人所知的分布式锁实现全都在这里了
  8. 【mysql】显式加锁
  9. mysql 内连接条件_Mysql内连接有OR条件?
  10. SQL Server 2008 R2数据库镜像部署
  11. 天工软件在正射项目中的应用与常见问题解答
  12. icmp协议用在什么服务器上,ICMP协议是什么?ICMP协议的作用是什么?
  13. 苦难是屈辱,还是财富?
  14. SQL文件切割工具、大文件操作工具
  15. android飞信群发助手
  16. html/css 钢琴黑白格布局
  17. 企业微信个人二维码在哪里?会失效吗?
  18. 马斯克:你只见我谈笑间荣耀封神,却不知我曾险失所有
  19. Android 数据加密算法总结
  20. 获取office版本

热门文章

  1. 大数据之Linux早课9.11
  2. servlet请求转发
  3. ServletContext,ActionContext,ServletActionContext
  4. C/C++语言经典、实用、趣味程序设计编程百例精解(2)
  5. Advice只有切面化之后才能显现出AOP的巨大优势
  6. Oracle查询 rownum和rowid的区别
  7. AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
  8. 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例
  9. 抽象类继承 java_java继承抽象类
  10. mysql 选取数据库_mysql选取数据库