PHPCMS整合UCENTER后登陆问题
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后登陆问题相关推荐
- ucenter base.php,phpcms整合ucenter问题集
1.整合 UCenter 后,Discuz! 注册会员在 phpcms 中为什么不显示昵称? 答:这是因为 Discuz! 只有"用户名",没有"昵称"的概念. ...
- php云人才系统 怎么整合ucenter,phpcms如何整合UCenter
无忧主机小编经常遇到客户需要一个网站建立多个系统.这样功能固然强大,但是如果没有一个有效的整合平台把这些零散的网站客户聚集起来,很容易出现问题.况且网站的客户不能实现同步登陆,换一个平台就要再登陆一遍 ...
- [转]网站整合Ucenter详细流程
最近公司项目要用到SNS,在具体采取解决方案上面由于项目由一实力较强的外包公司做,所以没有采用商业解决方案.不过本人一直比较看好康盛的产品,因为被外派到外包公司去负责项目,尽管以前用的SNS也在不少, ...
- windows下整合UCenter、ECShop、Discus
http://blog.csdn.net/lwx2615/article/details/6117941 安装环境:windows WampServer 2.1c [28/12/10] Inclus ...
- 网站整合Ucenter详细流程
第一步:下载安装UCenter,这里就不详细说了,网上很多教程 1.下载UCenter 下载地址: 2.安装UCenter 第二步:打开下载UCenter文件夹内的advanced文件夹, ...
- Phpcms:整合文档
phpcms整合discuz 首先进入网站后台 打开系统设置-->基本配置-->通行证 是否启用通行证:选"是" 整合文件:选"discuz" 接口 ...
- discuz论坛整合ucenter免激活,同步登录,同步退出解决方案(附源码)
UCenter作为整合用户的这样一个开源插件,对于PHP开发的,甚至其它开发语言如.net,java.asp等开发人员解决多个项目整合到一起,用户进行同步登录,同步退出等,同步消息等都是非常有用的.下 ...
- SSM整合Shiro进行登陆认证和授权详细配置
本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...
- php ucword,ThinkPHP3.1.2整合UCenter详解(二)
在ThinkPHP3.1.2整合UCenter详解(一) 中我们安装完了WBlog3.1.2.UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后.接下来接着上一篇讲 ...
最新文章
- linux 内核生成
- 如何安装,卸载eclipse中的ADT,或者更新ADT
- Elasticsearch之search搜索入门
- 分布式之延时任务方案解析
- [vue] 说说你对vue的template编译的理解?
- 微软全新Chromium版Edge浏览器下载
- 万字长文!不为人所知的分布式锁实现全都在这里了
- 【mysql】显式加锁
- mysql 内连接条件_Mysql内连接有OR条件?
- SQL Server 2008 R2数据库镜像部署
- 天工软件在正射项目中的应用与常见问题解答
- icmp协议用在什么服务器上,ICMP协议是什么?ICMP协议的作用是什么?
- 苦难是屈辱,还是财富?
- SQL文件切割工具、大文件操作工具
- android飞信群发助手
- html/css 钢琴黑白格布局
- 企业微信个人二维码在哪里?会失效吗?
- 马斯克:你只见我谈笑间荣耀封神,却不知我曾险失所有
- Android 数据加密算法总结
- 获取office版本
热门文章
- 大数据之Linux早课9.11
- servlet请求转发
- ServletContext,ActionContext,ServletActionContext
- C/C++语言经典、实用、趣味程序设计编程百例精解(2)
- Advice只有切面化之后才能显现出AOP的巨大优势
- Oracle查询 rownum和rowid的区别
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
- 问题六十一:三次b样条(b-spline)曲线的控制点和曲线形状的对应——以回旋体的“基本曲线”为例
- 抽象类继承 java_java继承抽象类
- mysql 选取数据库_mysql选取数据库