|
@@ -8,21 +8,31 @@ from app.configs import config
|
|
|
|
|
|
|
|
|
def verify_token(token, servertype):
|
|
|
- if token not in config.built_in_token or token not in config.token_dict: # 不是内置token请求oauth或不在字记录典里请求oauth
|
|
|
- # token ,记录token,token为key,时间错为value
|
|
|
- validate_token_rep = requests.post('http://%s/oauth/api/user/getUserByToken' % config.OAUTH_HOST,
|
|
|
- headers={'token': token},
|
|
|
- data={'strUrl': servertype, 'serviceId': 8})
|
|
|
-
|
|
|
- elif time.time() > config.token_dict.get(token) + 172800:
|
|
|
- # token在字典里,判断token是否超过48小时,超过删除token请求oauth。记录token,token为key,时间错为value
|
|
|
- config.token_dict.pop(token)
|
|
|
- validate_token_rep = requests.post('http://%s/oauth/api/user/getUserByToken' % config.OAUTH_HOST,
|
|
|
- headers={'token': token},
|
|
|
- data={'strUrl': servertype, 'serviceId': 8}
|
|
|
- )
|
|
|
-
|
|
|
- return validate_token_rep.json()
|
|
|
+ if token not in config.built_in_token: # 不是内置token请求oauth
|
|
|
+ # token 不在字典里请求oauth,记录token,token为key,时间错为value
|
|
|
+ if token not in config.token_dict:
|
|
|
+ validate_token_rep = requests.post('http://%s/oauth/api/user/getUserByToken' % config.OAUTH_HOST,
|
|
|
+ headers={'token': token,
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'},
|
|
|
+ data={'strUrl': servertype, 'serviceId': 8}).json()
|
|
|
+ if validate_token_rep:
|
|
|
+ if validate_token_rep.get('code') != 200:
|
|
|
+ return validate_token_rep
|
|
|
+ return validate_token_rep
|
|
|
+
|
|
|
+ else:
|
|
|
+ # token在字典里,判断token是否超过48小时,超过删除token请求oauth。记录token,token为key,时间错为value
|
|
|
+ if time.time() > config.token_dict.get(token) + 172800:
|
|
|
+ config.token_dict.pop(token)
|
|
|
+ validate_token_rep = requests.post('http://%s/oauth/api/user/getUserByToken' % config.OAUTH_HOST,
|
|
|
+ headers={'token': token,
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'},
|
|
|
+ data={'strUrl': servertype, 'serviceId': 8}
|
|
|
+ ).json()
|
|
|
+ if validate_token_rep:
|
|
|
+ if validate_token_rep.get('code') != 200:
|
|
|
+ return validate_token_rep
|
|
|
+ return validate_token_rep
|
|
|
|
|
|
|
|
|
class AgentApi(Resource):
|
|
@@ -35,15 +45,17 @@ class AgentApi(Resource):
|
|
|
servertype = args.pop('servertype')
|
|
|
|
|
|
validate_token_rep = verify_token(token, servertype)
|
|
|
- if validate_token_rep.get('code') != 200:
|
|
|
- return validate_token_rep
|
|
|
+ if validate_token_rep:
|
|
|
+ if validate_token_rep.get('code') != 200:
|
|
|
+ return validate_token_rep
|
|
|
|
|
|
- config.token_dict[token] = time.time()
|
|
|
# 替换ip转发请求
|
|
|
rep = requests.get('{server}/{path}'.format(server=config.ServerConfig.get(servertype), path=path),
|
|
|
- params=args)
|
|
|
+ params=args, headers={
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'})
|
|
|
response = make_response(rep.content)
|
|
|
response.headers['Content-Type'] = rep.headers.get('Content-Type')
|
|
|
+ response.headers['Connection'] = 'keep-alive'
|
|
|
|
|
|
return response
|
|
|
|
|
@@ -59,13 +71,17 @@ class MapServer(Resource):
|
|
|
servertype = args.pop('servertype')
|
|
|
|
|
|
validate_token_rep = verify_token(token, servertype)
|
|
|
- if validate_token_rep.get('code') != 200:
|
|
|
- return validate_token_rep
|
|
|
+ if validate_token_rep is not None:
|
|
|
+ if validate_token_rep.get('code') != 200:
|
|
|
+ return validate_token_rep
|
|
|
# 替换ip转发请求
|
|
|
- rep = requests.get(config.ServerConfig.get(servertype), params=args)
|
|
|
+ rep = requests.get(config.ServerConfig.get(servertype), params=args, headers={
|
|
|
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'})
|
|
|
|
|
|
response = make_response(rep.text)
|
|
|
response.headers['Content-Type'] = 'application/javascript;charset=UTF-8'
|
|
|
+ response.headers['Connection'] = 'keep-alive'
|
|
|
+
|
|
|
return response
|
|
|
|
|
|
except KeyError:
|