1、用户登录。
1、使用cookie,记录。
2、模拟session,记录数据库。
本次讨论,模拟session,记录数据库。
1、功能需求
后台登录后,记住登录状态,状态默认过期时间为3分钟即1800
--
-- 表的结构 `admin_user`
--
CREATE TABLE IF NOT EXISTS `admin_user` (
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_name` varchar(45) NOT NULL DEFAULT '',
`password` varchar(32) NOT NULL DEFAULT '',
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`last_login_time` int(10) unsigned NOT NULL DEFAULT '0',
`last_login_ip` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- 表的结构 `admin_session`
--
CREATE TABLE IF NOT EXISTS `admin_session` (
`session_id` varchar(32) NOT NULL,
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
`expire` int(10) unsigned NOT NULL DEFAULT '0',
`session_data` text,
PRIMARY KEY (`session_id`),
KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
1、用户登录验证通过后,新建会话记录(session)。
新建:会话过期时间=当前时间+3分钟。
cookie:保存seession_id到cookie里。
2、根据cookie,检索会话,最后找到用户相关信息。
1、从浏览器cookie里取出seession_id,检索数据库会话记录,如果该记录过期,则删除该记录。
2、如果找到记录,取出数据库里的 session['uid'] ,同时也就找到了用户信息。
3、更新数据库 seesion 过期时间。保持一个持续会话。
3、清除过期seesion(collectGarbage, 垃圾)。基于效率问题,可以设置概率性触发。
目前埋点。
新建session 时。
1、使用cookie,记录。
2、模拟session,记录数据库。
本次讨论,模拟session,记录数据库。
1、功能需求
后台登录后,记住登录状态,状态默认过期时间为3分钟即1800
--
-- 表的结构 `admin_user`
--
CREATE TABLE IF NOT EXISTS `admin_user` (
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_name` varchar(45) NOT NULL DEFAULT '',
`password` varchar(32) NOT NULL DEFAULT '',
`create_time` int(10) unsigned NOT NULL DEFAULT '0',
`last_login_time` int(10) unsigned NOT NULL DEFAULT '0',
`last_login_ip` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- 表的结构 `admin_session`
--
CREATE TABLE IF NOT EXISTS `admin_session` (
`session_id` varchar(32) NOT NULL,
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
`expire` int(10) unsigned NOT NULL DEFAULT '0',
`session_data` text,
PRIMARY KEY (`session_id`),
KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
1、用户登录验证通过后,新建会话记录(session)。
新建:会话过期时间=当前时间+3分钟。
cookie:保存seession_id到cookie里。
2、根据cookie,检索会话,最后找到用户相关信息。
1、从浏览器cookie里取出seession_id,检索数据库会话记录,如果该记录过期,则删除该记录。
2、如果找到记录,取出数据库里的 session['uid'] ,同时也就找到了用户信息。
3、更新数据库 seesion 过期时间。保持一个持续会话。
3、清除过期seesion(collectGarbage, 垃圾)。基于效率问题,可以设置概率性触发。
目前埋点。
新建session 时。
查找session。
相关代码下载:https://docs.google.com/open?id=0B-aNSlaQ-ClzNWVvenFSV1VUREN6OWgzRmhCMnlFQQ