ucenter踩坑笔记,关于注册与登陆密码的问题

之前使用UCENTER作为用户数据的管理后台,因为JAVA端的后台一直与之结合,新开发的外包项目也直接在此基础上开发。结果新的H5游戏在注册登陆这块因使用UC而踩了个坑,浪费了一天时间。我的业务是注册与登陆写了一个接口,无此用户直接算注册,有则直接算登陆。问题则发生成密码上,我前台输入的密码直接MD5后用作密码,在注册接口中,UCENTER是$password = md5(md5($password).$salt)。也就是前端给来的密码先进行了一次MD5后与用户动态字段进行合并 再一次MD5。 生成用于比对验证的最终记录密码。而在登陆时,UC的验证方法里对前端 传来的密码进行了一次判断。如果正好是32位的加密串,则直接用于验证,而我传来的正是直接加密过的MD5串,导致在注册时与验证时使用了不同的流程而无法通过验证。这个问题让我找了一天。。。只得阅读UCENTER的代码找问题才发现原因。记录下来,以免以后忘记。

下面就是   UCENTER里的登陆验证逻辑。

$passwordmd5 = preg_match('/^\w{32}$/', $password) ? $password : md5($password);

        if(empty($user)) {

            $status = -1;

        } elseif($user['password'] != md5($passwordmd5.$user['salt'])) {

            $status = -2;

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值