Browse Source

settoken-直播

urbanu619 6 months ago
parent
commit
0cc2a772d6
2 changed files with 186 additions and 2 deletions
  1. 14 2
      web/PhalApi/Appapi/Api/Live.php
  2. 172 0
      web/PhalApi/Appapi/Api/Token.php

+ 14 - 2
web/PhalApi/Appapi/Api/Live.php

@@ -76,12 +76,13 @@ class Api_Live extends PhalApi_Api {
 			),
 			
 			'enterRoom' => array(
-				'uid' => array('name' => 'uid', 'type' => 'int', 'require' => true, 'desc' => '用户ID'),
+				'uid' => array('name' => 'uid', 'type' => 'string', 'require' => true, 'desc' => '用户ID'),
 				'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
 				'liveuid' => array('name' => 'liveuid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '主播ID'),
 				'stream' => array('name' => 'stream', 'type' => 'string', 'require' => true, 'desc' => '流名'),
 				'city' => array('name' => 'city', 'type' => 'string','default'=>'', 'desc' => '城市'),
 				'mobileid' => array('name' => 'mobileid', 'type' => 'string','default'=>'', 'desc' => '实际唯一识别码'),
+				'usernicename' => array('name' => 'usernicename', 'type' => 'string','default'=>'', 'desc' => '用户名'),
 			),
 			
 
@@ -731,7 +732,8 @@ class Api_Live extends PhalApi_Api {
 		$city=checkNull($this->city);
 		$stream=checkNull($this->stream);
 		$mobileid=checkNull($this->mobileid);
-        
+		$usernicename=checkNull($this->usernicename);
+
         if($uid>0){
         	$checkToken=checkToken($uid,$token);
 			if($checkToken==700){
@@ -744,6 +746,10 @@ class Api_Live extends PhalApi_Api {
         
 		$domain = new Domain_Live();
 		$userinfo=getUserInfo($uid);
+		if ($userinfo['id']<1){
+            $userinfo['id'] = $uid;
+        }
+        $userinfo['user_nicename'] = $usernicename;
 		if(!$city){
 			$city='好像在火星';
 		}
@@ -769,6 +775,12 @@ class Api_Live extends PhalApi_Api {
         }
 		
 		DI()->redis  -> set($token,json_encode($userinfo));
+        // 一天后过期,自动删除
+        $nowtime=time();
+        $expiretime=$nowtime+60*60*24;
+        if($expiretime > 0){
+            DI()->redis->expire($token, $expiretime);
+        }
 		
 		
         /* 用户列表 */

+ 172 - 0
web/PhalApi/Appapi/Api/Token.php

@@ -0,0 +1,172 @@
+<?php
+
+/*
+ *	Token
+ */
+class Api_Token extends PhalApi_Api {
+
+	public function getRules() {
+		return array(
+
+			'getToken'=>array(
+				'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
+				'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
+			),
+			'setToken'=>array(
+				'param' => array('name' => 'param', 'type' => 'string', 'require' => true, 'desc' => '参数'),
+			),
+		);
+	}
+
+
+	/** 
+	 * 获取Token
+	 * @desc 用于获取Token
+	 * @return int code 操作码,0表示成功
+	 * @return array info 
+	 * @return string msg 提示信息
+	 */
+	public function getToken() {
+		$rs = array('code' => 0, 'msg' => '', 'info' => array());
+
+		$uid=checkNull($this->uid);
+		$token=checkNull($this->token);
+
+		$isBlackUser=isBlackUser($uid);
+		 if($isBlackUser=='0'){
+			$rs['code'] = 700;
+			$rs['msg'] = '该账号已被禁用';
+			return $rs;
+		}
+
+		$checkToken=checkToken($uid,$token);
+		if($checkToken==700){
+			$rs['code'] = $checkToken;
+			$rs['msg'] = '您的登陆状态失效,请重新登陆!';
+			return $rs;
+		}else if($checkToken==10020){
+			$rs['code'] = 700;
+			$rs['msg'] = '该账号已被禁用';
+			return $rs;
+		}
+		
+		$domain = new Domain_Auth();
+		$info = $domain->getAuth($uid);
+		
+		
+		$rs['info'][0]=$info;
+		
+		
+		return $rs;
+	}
+
+    /**
+     * @param int $type 1生成昵称,2生成姓名
+     * //汉语 - 给用户自动生成昵称
+     */
+    function nickname(): string
+    {
+        // 定义一个随机名字数组
+        $firstNames = array('赵','钱','孙','李','周','吴','郑','王','冯','陈','褚','卫','蒋','沈','韩','杨',
+            '朱','秦','尤','许','何','吕','施','张','孔','曹','严','华','金','魏','陶','姜','戚','谢','邹','喻',
+            '柏','水','窦','章','云','苏','潘','葛','奚','范','彭','郎','鲁','韦','昌','马','苗','凤','花','方',
+            '任','袁','柳','鲍','史','唐','费','薛','雷','贺','倪','汤','滕','殷','罗','毕','郝','安','常','傅',
+            '卞','齐','元','顾','孟','平','黄','穆','萧','尹','姚','邵','湛','汪','祁','毛','狄','米','伏','成',
+            '戴','谈','宋','茅','庞','熊','纪','舒','屈','项','祝','董','梁','杜','阮','蓝','闵','季','贾','路',
+            '娄','江','童','颜','郭','梅','盛','林','钟','徐','邱','骆','高','夏','蔡','田','樊','胡','凌','霍',
+            '虞','万','支','柯','管','卢','莫','柯','房','裘','缪','解','应','宗','丁','宣','邓','单','杭','洪',
+            '包','诸','左','石','崔','吉','龚','程','嵇','邢','裴','陆','荣','翁','荀','于','惠','甄','曲','封',
+            '储','仲','伊','宁','仇','甘','武','符','刘','景','詹','龙','叶','幸','司','黎','溥','印','怀','蒲',
+            '邰','从','索','赖','卓','屠','池','乔','胥','闻','莘','党','翟','谭','贡','劳','逄','姬','申','扶',
+            '堵','冉','宰','雍','桑','寿','通','燕','浦','尚','农','温','别','庄','晏','柴','瞿','阎','连','习',
+            '容','向','古','易','廖','庾','终','步','都','耿','满','弘','匡','国','文','寇','广','禄','阙','东',
+            '欧','利','师','巩','聂','关','荆','司马','上官','欧阳','夏侯','诸葛','闻人','东方','赫连','皇甫',
+            '尉迟','公羊','澹台','公冶','宗政','濮阳','淳于','单于','太叔','申屠','公孙','仲孙','轩辕','令狐',
+            '徐离','宇文','长孙','慕容','司徒','司空');
+        $lastNames = array('伟','刚','勇','毅','俊','峰','强','军','平','保','东','文','辉','力','明','永',
+            '健','世','广','志','义','兴','良','海','山','仁','波','宁','贵','福','生','龙','元','全','国','胜',
+            '学','祥','才','发','武','新','利','清','飞','彬','富','顺','信','子','杰','涛','昌','成','康','星',
+            '光','天','达','安','岩','中','茂','进','林','有','坚','和','彪','博','诚','先','敬','震','振','壮',
+            '会','思','群','豪','心','邦','承','乐','绍','功','松','善','厚','庆','磊','民','友','裕','河','哲',
+            '江','超','浩','亮','政','谦','亨','奇','固','之','轮','翰','朗','伯','宏','言','若','鸣','朋','斌',
+            '梁','栋','维','启','克','伦','翔','旭','鹏','泽','晨','辰','士','以','建','家','致','树','炎','德',
+            '行','时','泰','盛','雄','琛','钧','冠','策','腾','楠','榕','风','航','弘','秀','娟','英','华','慧',
+            '巧','美','娜','静','淑','惠','珠','翠','雅','芝','玉','萍','红','娥','玲','芬','芳','燕','彩','春',
+            '菊','兰','凤','洁','梅','琳','素','云','莲','真','环','雪','荣','爱','妹','霞','香','月','莺','媛',
+            '艳','瑞','凡','佳','嘉','琼','勤','珍','贞','莉','桂','娣','叶','璧','璐','娅','琦','晶','妍','茜',
+            '秋','珊','莎','锦','黛','青','倩','婷','姣','婉','娴','瑾','颖','露','瑶','怡','婵','雁','蓓','纨',
+            '仪','荷','丹','蓉','眉','君','琴','蕊','薇','菁','梦','岚','苑','婕','馨','瑗','琰','韵','融','园',
+            '艺','咏','卿','聪','澜','纯','毓','悦','昭','冰','爽','琬','茗','羽','希','欣','飘','育','滢','馥',
+            '筠','柔','竹','霭','凝','晓','欢','霄','枫','芸','菲','寒','伊','亚','宜','可','姬','舒','影','荔',
+            '枝','丽','阳','妮','宝','贝','初','程','梵','罡','恒','鸿','桦','骅','剑','娇','纪','宽','苛','灵',
+            '玛','媚','琪','晴','容','睿','烁','堂','唯','威','韦','雯','苇','萱','阅','彦','宇','雨','洋','忠',
+            '宗','曼','紫','逸','贤','蝶','菡','绿','蓝','儿','翠','烟');
+
+        // 随机选择姓和名
+        $firstName = $firstNames[array_rand($firstNames)];
+        $lastName = $lastNames[array_rand($lastNames)];
+
+        // 生成随机的3位数字
+        $randomNumber = mt_rand(100, 999);
+
+        // 拼接姓名和随机数字
+        return $firstName . $lastName . $randomNumber;
+    }
+	
+	/**
+	 * 设置Token
+	 * @desc 用于生成用户Token
+	 * @return int code 操作码,0表示成功
+	 * @return array info 
+	 * @return string msg 提示信息
+	 */
+	public function setToken() {
+		$rs = array('code' => 0, 'msg' => '已生成token', 'info' => array());
+
+		// 前端传过来的唯一值
+		$param=checkNull($this->param);
+
+        $num = DI()->redis->exists($param);
+        if ($num == 0) {
+
+//        $token=md5(md5($param.time()));
+            $nowtime = time();
+            $expiretime = $nowtime + 60 * 60 * 24 * 300;
+
+            $rs['info'] = [
+                'uid' => $param,
+                'token' => $param,
+                'expire_time' => $expiretime,
+                "id" => $param,
+                "user_nicename" => $this->nickname(),
+                "avatar" => "/default.jpg",
+                "avatar_thumb" => "/default_thumb.jpg",
+                "sex" => "1",
+                "signature" => "这家伙很懒,什么都没留下",
+                "consumption" => "1204",
+                "votestotal" => "311",
+                "province" => "",
+                "city" => "",
+                "birthday" => "0",
+                "user_status" => "1",
+                "location" => ""
+            ];
+
+
+            setcaches("token_" . $param, $rs['info'], $expiretime);
+            return $rs;
+        }
+        else{
+            $json = DI()->redis->get($param);
+            $rs['info'] = json_decode($json, JSON_UNESCAPED_UNICODE);
+            return $rs;
+        }
+
+	}	
+
+
+
+    
+	
+
+}