Ejemplo n.º 1
0
 function save_online_user($user)
 {
     if (SSO_MODE == 'ticket') {
         $user['ticket'] = PassportModel::generateTicket();
         $this->set_ticket($user);
         $this->set_session($user);
     } elseif (SSO_MODE == 'session') {
         $user['ticket'] = PassportModel::generateTicket();
         $this->set_session($user);
     } else {
         $str = 'abcedfghijklmnopqrstuvwxyz';
         $rand_str = $str[rand(0, 25)] . $str[rand(0, 25)] . $str[rand(0, 25)] . $str[rand(0, 25)];
         $time = time();
         $token = md5(microtime());
         $key = md5($user['user'] . $token . $time . $rand_str);
         $user_arr['user'] = $user['user'];
         $user_arr['user_id'] = $user['user_id'];
         $user_arr['user_nickname'] = $user['user_nickname'];
         $user_arr['user_sex'] = $user['user_sex'];
         $user_arr['user_email'] = $user['user_email'];
         $user_arr['user_password'] = $user['user_password'];
         $user_arr['ticket'] = $key;
         $enc_info = encrypt(json_encode($user_arr), $key);
         setcookie('XPPASS_TOKEN', $token, 0, '/', COOKIE_DOMAIN);
         setcookie('XPPASS_STATE', urlencode($time . '|' . $user['user'] . '|' . $key . '|**|' . $rand_str), 0, '/', COOKIE_DOMAIN);
         setcookie('XPPASS_INFO', $enc_info, 0, '/', COOKIE_DOMAIN);
         setcookie('XPPASS_USERNAME', $user['user'], time() + 3600 * 24 * 365 * 10, '/', COOKIE_DOMAIN);
         setcookie('XPPASS_NICKNAME', urlencode($user['user_nickname']), time() + 3600 * 24 * 365 * 10, '/', COOKIE_DOMAIN);
     }
     if ($user['autologin'] == 1) {
         $this->set_iccard($user);
     }
 }