discuz登陆相关
$usename = "kkkkkkk" ; $password = "123456" ; $result = userlogin($usename, $password, null, null, "username", $_G["clientip"]); //$result["status"] > 0 代表账号密码正确 $uid = $result["ucresult"]["uid"];
require libfile("function/member");
$result["member"] = getuserbyuid(1);
setloginstatus($result["member"], 2592000); //记录登陆状态保存在cookie或session中账号密码验证正确,调用setloginstatus就能设置登陆状态了
验证密码是检验pre_ucenter_members表中的password,而不是pre_common_member中的password
密码验证方式 md5(md5(用户输入).salt) 是否中pre_ucenter_members.password是否一致
salt在pre_ucenter_members表中的salt字段
$auth = authcode("{$member["password"]} {$member["uid"]}", "ENCODE") ;
dsetcookie("auth",$auth, $cookietime, 1, true);
setloginstatus会把password和uid加密后,放在cookie中,用于在discuz_application中判断用户是否已经登陆
如以下代码
if($auth = getglobal("auth", "cookie")) {
$auth = daddslashes(explode(" ", authcode($auth, "DECODE")));
}
list($discuz_pw, $discuz_uid) = empty($auth) || count($auth) < 2 ? array("", "") : $auth;
if($discuz_uid) {
$user = getuserbyuid($discuz_uid, 1);
}if(!empty($user) && $user["password"] == $discuz_pw) {
if(isset($user["_inarchive"])) {
C::t("common_member_archive")->move_to_master($discuz_uid);
}
$this->var["member"] = $user;
$nickname = getuserprofile("nickname") ;
$this->var["member"]["nickname"] = $nickname ;
} else {
$user = array();
$this->_init_guest();
}声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: yii2页面缓存
- 下一篇: Yii2 自定义返回格式
