在app支付模块中有是否是vip情况下访问接口,每次访问需要校验vip是否过期,设置认证机制token过期时间1个小时,refresh_token 过期时间一周,将vip时长校验方式放在更新refresh_token接口中进行校验,判断一天只校验一次,如果会员已经过期,更新token和refresh_token,并将判断是否是vip的权限返回到前端,前端更新localstore中的权限(在每一个访问vip接口前,前端先进行校验,减少不必要的访问良妃资源,后端添加限制防止爬虫爬去数据)
@routes.put('/api/v1/refresh_token')
@app_permission_authentication
async def put_refresh_token(request):
username = request.get("id")
permission = request.get("permission")
db = request.app.get('db')
is_refresh_token = request.get("is_refresh_token")
try:
user_data = await db["users"].find_one({"id": int(id)}, {"_id": 0})
duration = id_vip(user_data.get("duration"))
if not vip_expire:
where= {'permission': 4, "duration": None}
await db["users"].find_one_and_update({"uid": int(uid)}, {'$set':where})
result = await AppAuthorization(request).put_token(id, permission, is_refresh_token,
duration=user_data.get("duration"))
if result:
user_data.update(where)
result.update({"status": True, "error": None, "user_data": user_data})
return web.json_response(result)
else:
return web.json_response({"status": False, "error": None})
except Exception as e:
return web.json_response({"status": False, "error": None})
通过认证的方式判断vip是是否过期
最新推荐文章于 2023-05-27 07:35:02 发布