关于OneThink后台忘记密码处理

浏览:15116 发布日期:2013/10/14 分类:求助交流

(1)如图,通过URL确定页面所指向的位置

(2)如上图,找到对应的方法,如果你有个的是zendstudio CTRL+方法名直接可以转到指定的方法
(3)    public function login($username, $password, $type = 1)
        {
        return $this->model->login($username, $password, $type);
    }
然后该方法在User控制器里面是这个方法,废话一下哦
刚开始对于 $this->model->login 这种调用方法,瞬间惊胆了,不明绝厉!这里的model是Api.class.php里面的一个属性。也就是MVC里面的M咯
其实这里我和TP里面的大D方法差不多的功能。然后呢找到UserApi在其Model里面找到UcenterMemberModel,继续找到login方法

其实验证的时候是通过这段代码验证的if(think_ucenter_md5($password, UC_AUTH_KEY) === $user['password']){
                $this->updateLogin($user['id']); //更新用户登录信息
updateLogin方法如下function think_ucenter_md5($str, $key = 'ThinkUCenter'){
    return '' === $str ? '' : md5(sha1($str) . $key);
}
UC_AUTH_KEY是一个常量在config里面定义,是安装的时候自动生成的!每个人不一样!比如我的是“;*2PwnWy&?p!s[qdHBE-r1NCJ0om7le`uLM9"GcX",
看了代码,就瞬间了然了!TP把我们传过来的密码 首先 哈希加密后和UC_AUTH_KEY连接在Md5,既然你忘记了密码,你可以把你要修改的密码echo md5(sha1('llllito') . ';*2PwnWy&?p!s[qdHBE-r1NCJ0om7le`uLM9"GcX')以后输出的结果把表onethink_ucenter_admin里的password重置就好啦!
最佳答案
评论( 相关
后面还有条评论,点击查看>>