cookie登录讨论
网站上关于cookie的讨论很少,不知道大家平时是怎么使用cookie的,
如果只要保存用户名和密码,我是这样做的,
,登录的时候,在setUser之后,如果没有检测到cookie,那用明文保存username,用mcrypt_encrypt保存密码,
,如果Session失效,默认会调用onDispatcherAuthFailedCallback,这时候,如果能检测到cookie,那把密码解密后调用原来的登录函数,如果没有检测到cookie,那重定向到某个任何人都能访问的页面。

如果大家有什么更好的办法,还望不吝赐教。

下面是入口文件中的onDispatcherAuthFailedCallback函数,
view plaincopy to clipboardprint
?

   
1. function onDispatcherAuthFailedCallback($controller,$action){  
   
2.         if (isset($_COOKIE['username']) && isset($_COOKIE['password'])) {  
   
3.                 // 得到Cookie中的信息  
   4.                 $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);  
   
5.                 $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);  
   
6.                 $key = "This is a very secret key";  
   
7.                 $decryptPassword = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $_COOKIE['password'], MCRYPT_MODE_ECB, $iv);  
   
8.                 $userInfo = array('username'=>$_COOKIE['username'],'password'=>trim($decryptPassword));  
   
9.                 $modelUser =& FLEA::getSingleton('Model_Admin_Users');  
  
10.                 /* @var $modelUser Model_Admin_Users */  
  
11.                 $modelUser->handleUser($userInfo);  
  
12.                 redirect($_SERVER['HTTP_REFERER']);  
  
13.         }else {  
  
14.                 redirect(url('User_Default','Index'));  
  
15.         }  
  
16. }