destoon 的登录过程,如何使用cookie来判断用户是否登录
Cookie 如何 用户 过程 判断 登录 是否 destoon
2023-09-27 14:24:59 时间
if($MOD[ passport ] == uc ) include DT_ROOT. /api/ .$MOD[ passport ]. .inc.php
//7 line
$do = new memb
Discuz! X3.5 登录不了管理后台的处理方法集合 1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
上两篇讲的无论是内部类的封装领域还是配置文件的认证源,这篇开始讲最关心的数据库作为境界的认证源 这里使用的是四郎给我们提供的另一个内置的类JdbcRealm这个是连接数据库的一个内部类,话不多说了,具体的代码如下:
第一部分是destoon 的登录过程
登录是使用member- login的函数来实现的login.inc.php
代码在login.inc.php这个文件中
if($MOD[passport] == uc) include DT_ROOT./api/.$MOD[passport]..inc.php; //7 line $do = new member; //42 line $user = $do- login($username, $password, $cookietime);member这个类在member.class.php中定义
function login($login_username, $login_password, $login_cookietime = 0, $admin = false) { global $DT_TIME, $DT_IP, $MOD, $MODULE, $L; ........................ $auth=encrypt($user[userid]."\t".$user[username]."\t".$user[groupid]."\t".$user[password]."\t".$user[admin], md5(DT_KEY.$DT_IP)); set_cookie(auth, $auth, $cookietime); set_cookie(userid, $user[userid], $cookietime); set_cookie(username, $user[username], $DT_TIME + 86400*365); $this- db- query("UPDATE {$this- table_member} SET loginip=$DT_IP,logintime=$DT_TIME,logintimes=logintimes+1 WHERE userid=$userid"); return $user; }如果登录成后,那么给用户设置cookie,使用的set_cookie函数是在include/global.func.php中实现
function set_cookie($var, $value = , $time = 0) { global $CFG, $DT_TIME; $time = $time 0 ? $time : (empty($value) ? $DT_TIME - 3600 : 0); $port = $_SERVER[SERVER_PORT] == 443 ? 1 : 0; $var = $CFG[cookie_pre].$var; return setcookie($var, $value, $time, $CFG[cookie_path], $CFG[cookie_domain], $port); }如果说用js来判断是否登录,可以通过cookie来取得相应的值是否为空
在这里说明一下cookie是有前缀的,所以推荐使用系统带的取得cookie的函数 get_cookie
系统中原自带的处理判断用户是否登录是使用的以下函数,在footer.htm中
show_task({$destoon_task});
经过编译后会转化成
script type="text/javascript"
show_task(moduleid=1 html=index);
/script
show_task函数在page.js中实现,有兴趣的话,可以看一下,返回的是一段js代码,js模板在template/chip/line.htm中
Discuz! X3.5 登录不了管理后台的处理方法集合 1. 取消IP认证。由于Discuz!论坛会认证IP,不允许不同IP地址同时登录后台,所以取消IP认证即可。修改方法:在网站根目录,Discuz!配置文件config目录下config_global.php 中找到如下代码:$_config[‘admincp’][‘checkip’] = 1把代码中“1”改成“0”。(修改后允许多IP同时登录后台,所以论坛的安全系数会降低)
上两篇讲的无论是内部类的封装领域还是配置文件的认证源,这篇开始讲最关心的数据库作为境界的认证源 这里使用的是四郎给我们提供的另一个内置的类JdbcRealm这个是连接数据库的一个内部类,话不多说了,具体的代码如下:
相关文章
- vue get/post请求如何携带cookie的问题
- httpclient提示Cookie rejected: violates RFC 2109: domain must start with a dot
- 前端开发中Cookie那些事儿
- 设置 cookie
- 面试题 -- 跨域请求如何携带cookie?
- WebKit推出智能反追踪技术,可实时查看谁拿了你的cookie
- Python Flask,cookie,session ,设置、获取、删除
- Js(JavaScript) 创建保存和读取cookie方法代码分享
- requests模块的深度使用和处理cookie的3种方法
- 超文本浏览框如何获取登陆cookie
- 在 Go 语言中增强 Cookie 的安全性
- Cookie操作类、压缩、序列化