用户登录实现机制

1 篇文章 0 订阅
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 时。

   查找session。


相关代码下载:https://docs.google.com/open?id=0B-aNSlaQ-ClzNWVvenFSV1VUREN6OWgzRmhCMnlFQQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值