/** * 将用户凭证、登录方式等用户信息保存到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; }