fastapi用户权限模块——“修改指定用户的密码“

@router.put("/user/{user_id}/password", summary="修改指定用户的密码")
async def setPassword(*,
                      user_id: int,
                      db: Session = Depends(deps.get_db),
                      u: Users = Depends(deps.user_perm(["perm:user:put"])),
                      obj: UserSetPasswordSchema
                      ):
    curd_user.changePassword(db, _id=user_id, new_password=obj.password, updater_id=u['id'])
    return respSuccessJson()

这段代码是一个用于修改指定用户密码的路由处理函数。让我来解释一下这个函数的关键部分:

  1. @router.put("/user/{user_id}/password", ... ... summary="修改指定用户的密码"):这是一个装饰器,指定了这个函数处理的HTTP PUT请求的路径为"/user/{user_id}/password",并提供了一个简短的描述(summary)。

  2. async def setPassword(*, user_id: int, ... ... UserSetPasswordSchema)::这是一个异步函数,用于处理HTTP请求。它接受一个名为user_id的路径参数,表示要修改密码的用户ID,以及一个名为obj的参数,类型为UserSetPasswordSchema,用于接收新的密码信息。

  3. curd_user.changePassword(db, _id=user_id, new_password=obj.password, updater_id=u['id']):这行代码调用了一个名为changePassword的函数,用于在数据库中修改指定用户的密码。它接受数据库会话、用户ID和新密码作为参数。

  4. … … 最后使用respSuccessJson()返回一个成功的响应。

总的来说,这段代码是一个用于处理修改指定用户密码的路由处理函数,它接受用户ID和新密码信息,并在数据库中进行相应的修改操作,然后返回一个成功的响应。

    def changePassword(self, db: Session, *, _id: int, new_password: str, updater_id: int = 0):
        print(new_password)
        obj_in = {'hashed_password': get_password_hash(new_password)}
        return super().update(db, _id=_id, obj_in=obj_in, modifier_id=updater_id)

这段代码是一个用于在数据库中修改用户密码的函数。让我来解释一下这个函数的关键部分:

  1. def changePassword(self, db: Session, *, _id: int, new_password: str, updater_id: int = 0)::这是一个名为changePassword的方法,它接受一个数据库会话db和一些参数,其中_id表示要修改密码的用户ID,new_password表示新的密码,updater_id表示修改者的ID。

  2. obj_in = {'hashed_password': get_password_hash(new_password)}:这行代码创建了一个包含新密码哈希值的字典obj_in

  3. return super().update(db, _id=_id, obj_in=obj_in, modifier_id=updater_id):这行代码调用了super().update方法,用于在数据库中更新用户的密码信息。它接受数据库会话、用户ID、新密码信息和修改者ID作为参数。

总的来说,这个changePassword方法是用于接收新密码信息并在数据库中修改用户密码的功能,它接受用户ID、新密码和修改者ID作为参数,并在数据库中进行相应的更新操作。

def get_password_hash(password: str) -> str:
    return pwd_context.hash(password)

这段代码定义了一个函数,用于生成密码的哈希值。让我来解释一下这个函数的关键部分:

  1. def get_password_hash(password: str) -> str::这是一个名为get_password_hash的函数,它接受一个字符串类型的密码作为输入,并返回一个字符串类型的密码哈希值。

  2. pwd_context.hash(password):这行代码调用了pwd_contexthash方法,用于对输入的密码进行哈希处理,以确保密码在存储时不以明文形式保存。

总的来说,这个get_password_hash函数是用于对密码进行哈希处理的功能,它接受密码作为输入,并返回经过哈希处理的密码值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值