async def on_update(cls, info: QueryInfo, values: 'ValuesToWrite', when_before_update: List[Callable[[IDList], Awaitable]], when_complete: List[Callable[[], Awaitable]], perm: PermInfo = None): if 'password' in values: ret = UserModel.gen_password_and_salt(values['password']) values.update(ret)
async def validate_password_reset(self): """ 忘记密码后,进入重设流程时,通过此接口提交校验码和新密码 :return: """ vpost: ValidatePasswordResetPostDataModel = self._.validated_post user = await UserModel.check_reset_key(vpost.uid, vpost.code) if user: info = UserModel.gen_password_and_salt(vpost.password) user.password = info['password'] user.salt = info['salt'] user.reset_key = None user.save() UserToken.clear_by_user_id(user.id) t: UserToken = await self.setup_user_token(user.id) self.finish(RETCODE.SUCCESS, {'id': user.id, 'nickname': user.nickname, 'access_token': t.get_token()}) else: self.finish(RETCODE.FAILED)