def refresh(req):
if "id" not in req.json or "token" not in req.json:
logger.debug(f"Request is {req.json} but some arguments are missing.")
raise InvalidUsage("Missing argument")
user = User.get_by_id(req.json["id"])
if user is None:
logger.debug(f"Request is {req.json} but user coundn't be found.")
raise NotFound("User not found")
if await accounts.is_frozen(user.id, req.ip):
logger.debug(f"Request is {req.json} but the account is frozen.")
raise InvalidUsage("Account frozen")
if not await accounts.is_valid(req.json["id"], req.json["token"]):
logger.debug(f"Request is {req.json} but the token is invalid or expirated.")
await accounts.freeze(user.id, req.ip)
raise NotFound("Token not found or expirated")
await accounts.unfreeze(user.id, req.ip)
logger.info(f"User {user.name} refreshed it's token: {req.json['token']}")
return json({"token": req.json["token"], "id": user.id, "name": user.name})
评论列表
文章目录