libushang преди 1 месец
родител
ревизия
09c9150e3f
променени са 3 файла, в които са добавени 133 реда и са изтрити 121 реда
  1. 1 1
      jobs/__init__.py
  2. 8 5
      jobs/hkvideo_job.py
  3. 124 115
      routers/prod_api/auth.py

+ 1 - 1
jobs/__init__.py

@@ -16,7 +16,7 @@ from .hkvideo_job import proc as hkvideo_proc
 from common.security import encrypt_password
 
 def register_jobs(scheduler: BaseScheduler):
-    print('encrypt_password:', encrypt_password('666666'))
+    print('encrypt_password:', encrypt_password('!Aa123456'))
     # scheduler.add_job(yzy_proc, next_run_time=(datetime.now() + timedelta(seconds=3)))
     # scheduler.add_job(yzy_proc, CronTrigger.from_crontab('0 */5 * * *'))
     # scheduler.add_job(yzy_msg_queue_proc, CronTrigger.from_crontab('* * * * *'))

+ 8 - 5
jobs/hkvideo_job.py

@@ -21,11 +21,14 @@ def proc():
 
         db = get_db_local()
 
-        refresh_hkvideo(db)
-        refresh_hkvideo_region_list(db)
-        refresh_hkvideo_list(db)
-
-        db.close()
+        try:
+            refresh_hkvideo(db)
+            refresh_hkvideo_region_list(db)
+            refresh_hkvideo_list(db)
+        except Exception as e:
+            traceback.print_exc()
+        finally:
+            db.close()
 
         redis_unlock(lock_key)
 

+ 124 - 115
routers/prod_api/auth.py

@@ -21,6 +21,7 @@ from common import YzyApi
 from models import *
 from urllib.parse import quote
 import requests
+import traceback
 
 router = APIRouter()
 
@@ -75,142 +76,150 @@ async def login(
     db: Session = Depends(get_db),
     data: dict = Depends(remove_xss_json)
 ):
-    # tenantId = data['tenantId']
-    username = data['username']
-    password = data['password']
-    # rememberMe = data['rememberMe']
-    uuid_str = data['uuid']
-    code = data['code']
-    # clientId = data['clientId']
-    # grantType = data['grantType']
-
-    # 仅为了可能的兼容
-    clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"
-    grantType = "password"
-
-    uuid = buildVerificationCodeRedisKey(uuid_str)
-    redis_key = "kaptcha_" + uuid
-    redis_code = redis_get(redis_key)
-    if code is None or code != redis_code:
-        return {
-            "code": 500, 
-            "msg": "图片验证码不正确",
-        }
+    try:
+        # tenantId = data['tenantId']
+        username = data['username']
+        password = data['password']
+        # rememberMe = data['rememberMe']
+        uuid_str = data['uuid']
+        code = data['code']
+        # clientId = data['clientId']
+        # grantType = data['grantType']
+
+        # 仅为了可能的兼容
+        clientId = "e5cd7e4891bf95d1d19206ce24a7b32e"
+        grantType = "password"
+
+        uuid = buildVerificationCodeRedisKey(uuid_str)
+        redis_key = "kaptcha_" + uuid
+        redis_code = redis_get(redis_key)
+        if code is None or code != redis_code:
+            return {
+                "code": 500, 
+                "msg": "图片验证码不正确",
+            }
 
-    redis_login_key = "login_user_" + username
-    login_error_times = redis_get(redis_login_key)
-    if login_error_times is None:
-        login_error_times = 0
-    else:
-        login_error_times = int(login_error_times)
+        redis_login_key = "login_user_" + username
+        login_error_times = redis_get(redis_login_key)
+        if login_error_times is None:
+            login_error_times = 0
+        else:
+            login_error_times = int(login_error_times)
 
-    if login_error_times >= 5:
-        return {
-            "code": 500, 
-            "msg": "登录错误多,请5分钟后再尝试!",
-        }
+        if login_error_times >= 5:
+            return {
+                "code": 500, 
+                "msg": "登录错误多,请5分钟后再尝试!",
+            }
 
-    password = ase_utils.aesDecrypt(uuid_str, password)
-    logger.info('userpass: {}', password)
+        password = ase_utils.aesDecrypt(uuid_str, password)
+        logger.info('userpass: {}', password)
 
-    row = db.query(SysUser).filter(SysUser.user_name == username).first()
+        row = db.query(SysUser).filter(SysUser.user_name == username).first()
 
-    if row is None:
-        login_error_times = login_error_times + 1
-        redis_set_with_time(redis_login_key, str(login_error_times), 300)
-        return JSONResponse(status_code=404, content={"code": 404, "msg": "帐号或者密码错误"})
-        # return {
-        #     "error": 1,
-        #     "errmsg": "帐号或者密码错误",
-        # }
+        if row is None:
+            login_error_times = login_error_times + 1
+            redis_set_with_time(redis_login_key, str(login_error_times), 300)
+            return JSONResponse(status_code=404, content={"code": 404, "msg": "帐号或者密码错误"})
+            # return {
+            #     "error": 1,
+            #     "errmsg": "帐号或者密码错误",
+            # }
 
-    logger.info('row.password: {}', row.password)
-    if verify_password(password, row.password) == False:
-        login_error_times = login_error_times + 1
-        redis_set_with_time(redis_login_key, str(login_error_times), 300)
+        logger.info('row.password: {}', row.password)
+        if verify_password(password, row.password) == False:
+            login_error_times = login_error_times + 1
+            redis_set_with_time(redis_login_key, str(login_error_times), 300)
 
-        return JSONResponse(status_code=404, content={"code":404,"msg":"帐号或者密码错误"})
+            return JSONResponse(status_code=404, content={"code":404,"msg":"帐号或者密码错误"})
 
-    '''
-    m = hashlib.md5()
-    m.update(userpass.encode('utf-8'))
-    password_md5 = m.hexdigest()
+        '''
+        m = hashlib.md5()
+        m.update(userpass.encode('utf-8'))
+        password_md5 = m.hexdigest()
 
-    password_db = row.password
+        password_db = row.password
 
-    if password_md5 != password_db:
-        login_error_times = login_error_times + 1
-        redis_set_with_time(redis_login_key, str(login_error_times), 300)
+        if password_md5 != password_db:
+            login_error_times = login_error_times + 1
+            redis_set_with_time(redis_login_key, str(login_error_times), 300)
 
-        return {
-            "error": 1, 
-            "errmsg": "帐号或者密码错误",
-        }
-
-    # 校验长期(超过1个月)未使用的账号和及开通后未及时(如72小时)修改初始密码的账号做清除
-    last_login_time = datetime.fromtimestamp(row.last_login_time)
-    if row.login == 0:
-        # 计算初始化的时间和当前时间相差的小时数
-        diff_hour = (datetime.now() - last_login_time).seconds/3600
-        if diff_hour > 72:
-            return {
-                "error": 1, 
-                "errmsg": "你的账号在开通后(72小时)内未登录及修改初始密码,账号已被锁定,请联系管理员处理,否则将被清除。",
-            }
-    else:
-        # 计算上次登录到当前时间的相差天数
-        diff_day = (datetime.now() - last_login_time).days
-        if diff_day > 30:
             return {
                 "error": 1, 
-                "errmsg": "你的账号在超过30天未登录使用,账号已被锁定,请联系管理员处理,否则将被清除。",
+                "errmsg": "帐号或者密码错误",
             }
 
-    redis_set_with_time(redis_login_key, str(0), 1)
-    
-    '''
-    user_id = str(row.user_id)
-
-    auth = {
-        "user_id": user_id,
-        "user_name": row.user_name,  
-        "nick_name": row.nick_name,
-        "is_yzy_user": "0"
-    }
+        # 校验长期(超过1个月)未使用的账号和及开通后未及时(如72小时)修改初始密码的账号做清除
+        last_login_time = datetime.fromtimestamp(row.last_login_time)
+        if row.login == 0:
+            # 计算初始化的时间和当前时间相差的小时数
+            diff_hour = (datetime.now() - last_login_time).seconds/3600
+            if diff_hour > 72:
+                return {
+                    "error": 1, 
+                    "errmsg": "你的账号在开通后(72小时)内未登录及修改初始密码,账号已被锁定,请联系管理员处理,否则将被清除。",
+                }
+        else:
+            # 计算上次登录到当前时间的相差天数
+            diff_day = (datetime.now() - last_login_time).days
+            if diff_day > 30:
+                return {
+                    "error": 1, 
+                    "errmsg": "你的账号在超过30天未登录使用,账号已被锁定,请联系管理员处理,否则将被清除。",
+                }
+
+        redis_set_with_time(redis_login_key, str(0), 1)
+        
+        '''
+        user_id = str(row.user_id)
+
+        auth = {
+            "user_id": user_id,
+            "user_name": row.user_name,  
+            "nick_name": row.nick_name,
+            "is_yzy_user": "0"
+        }
 
-    request.session['user_auth'] = auth
-    request.session['user_auth_sign'] = data_auth_sign(auth)
-    request.session['user_name'] = username
+        request.session['user_auth'] = auth
+        request.session['user_auth_sign'] = data_auth_sign(auth)
+        request.session['user_name'] = username
 
-    # db_czrz_serv.log_username(db, row.uid, row.username, "登录", "后台管理账号+密码登录成功", request.client.host)
-    row.login_date = datetime.now()
-    row.login_ip = request.client.host
-    # row.login = row.login + 1
-    db.commit()
+        # db_czrz_serv.log_username(db, row.uid, row.username, "登录", "后台管理账号+密码登录成功", request.client.host)
+        row.login_date = datetime.now()
+        row.login_ip = request.client.host
+        # row.login = row.login + 1
+        db.commit()
 
-    access_token_expires = timedelta(days = 5)
-    access_token = security.create_access_token(
-        data={"sub": user_id}, expires_delta = access_token_expires
-    )
+        access_token_expires = timedelta(days = 5)
+        access_token = security.create_access_token(
+            data={"sub": user_id}, expires_delta = access_token_expires
+        )
 
-    refresh_token_expires = timedelta(days = 5)
-    refresh_token = security.create_access_token(
-        data={"sub": user_id}, expires_delta = refresh_token_expires
-    )
+        refresh_token_expires = timedelta(days = 5)
+        refresh_token = security.create_access_token(
+            data={"sub": user_id}, expires_delta = refresh_token_expires
+        )
 
-    return {
-        "code": 200,
-        "msg": "操作成功",
-        "data": {
-            "access_token": access_token,
-            "refresh_token": refresh_token,
-            "expire_in": 7200,
-            "refresh_expire_in": 7200,
-            "client_id": clientId,
-            "scope": "",
-            "openid": ""
+        return {
+            "code": 200,
+            "msg": "操作成功",
+            "data": {
+                "access_token": access_token,
+                "refresh_token": refresh_token,
+                "expire_in": 7200,
+                "refresh_expire_in": 7200,
+                "client_id": clientId,
+                "scope": "",
+                "openid": ""
+            }
+        }
+    
+    except Exception as e:
+        traceback.print_exc()
+        return {
+            "code": 500,
+            "msg": "帐号或者密码错误"
         }
-    }
 
 @router.post('/logout')
 async def logout(