Exemple #1
0
 /**
  * 将用户凭证、登录方式等用户信息保存到Redis中
  * usertoken:主要是为了删除旧token,即用户重新登录将获取新用户凭证,旧用户凭证将被删除
  * logintype:登录类型(1-手机号码  2-邮箱  3-QQ号码  4-Q药网旧用户)
  * logintime:登录时间(时间戳)
  * @param $userId       用户ID
  * @param $userInfo     需要保存的用户信息
  * @param $time longint 过期时间(S)  默认值为0-不设置过期时间
  * @return true:成功 flase:失败
  */
 protected function saveUserInfoToRedis($userId, $userInfo, $time = 0)
 {
     $oldUserToken = p\MyRedis::hashGet("user.info:{$userId}", 'usertoken');
     if ($oldUserToken) {
         // 旧用户凭证存在,则删除
         if (p\MyRedis::exists("token.to.userid:{$oldUserToken}")) {
             // 手动删除还没过期的旧用户凭证
             p\MyRedis::delete("token.to.userid:{$oldUserToken}");
         }
     }
     $data = array();
     if (isset($userInfo['usertoken'])) {
         $data['usertoken'] = $userInfo['usertoken'];
     }
     if (isset($userInfo['logintype'])) {
         $data['logintype'] = $userInfo['logintype'];
     }
     if (isset($userInfo['logintime'])) {
         $data['logintime'] = $userInfo['logintime'];
     }
     $result = false;
     if (!empty($data)) {
         $result = p\MyRedis::hashSet("user.info:{$userId}", $data, $time);
     }
     return $result;
 }