diff --git a/app/api/logic/LoginLogic.php b/app/api/logic/LoginLogic.php index f1c7dcd..3da398d 100755 --- a/app/api/logic/LoginLogic.php +++ b/app/api/logic/LoginLogic.php @@ -17,6 +17,7 @@ namespace app\api\logic; use Alipay\EasySDK\Kernel\Factory; use app\api\cache\TokenCache; use app\api\service\UserServer; +use app\common\cache\UserTokenCache; use app\common\cache\WebScanLoginCache; use app\common\logic\AccountLogLogic; use app\common\logic\BaseLogic; @@ -157,7 +158,7 @@ class LoginLogic extends BaseLogic //创建会话 $user_info['token'] = self::createSession($user_info['id'], Client_::mnp); - + self::createUserSession($user_info['id'],$user_info['token']); unset($user_info['id'], $user_info['disable']); return $user_info; } @@ -291,6 +292,40 @@ class LoginLogic extends BaseLogic (new TokenCache($token, ['token' => $token]))->set(300); return $token; } + public static function createUserSession($user_id,$tk) + { + + //清除之前缓存 + $token = Db::name('user_session') + ->where('user_id' , $user_id) + ->value('token'); + if($token) { + $token_cache = new UserTokenCache(); + $token_cache->deleteUserInfo($token); + } + + $result = Db::name('user_session') + ->where('user_id',$user_id) + ->find(); + + $time = time(); + $expire_time = $time + Config::get('project.token_expire_time'); + $data = [ + 'user_id' => $user_id, + 'token' => $tk, + 'update_time' => $time, + 'expire_time' => $expire_time, + ]; + + if (empty($result)) { + Db::name('user_session')->insert($data); + } else { + Db::name('user_session') + ->where('user_id', $user_id) + ->update($data); + } + $userInfo = (new UserTokenCache())->setUserInfo($tk); + } /** * @notes 退出登录 * @param $userInfo