Skip to content

第4讲作业提交通道(Backend) #7

Description

@FranGuam

作业内容

我们目前实现的路由还很不完善,请选择以下需求之一实现并测试功能

提示:

  1. 请仔细设计输入检查,例如参数是否正确传入、用户是否在数据库中存在等,并相应设计状态码和提示信息
  2. 你有可能需要修改 graphql 文件并重新生成 graphql.ts 来完成一些数据库操作
  • ”忘记密码?”:对于用户名为邮箱的用户,允许其通过密码重置邮件来修改密码,共需要实现两个路由

    • /user/change-password/request:发送一封含有重置密码链接的邮件到用户名所在的邮箱地址,链接中需要包括一个使用 JWT 将用户信息签名的 token(来识别和验证身份)
      • 请求方法:POST
      • 参数:{username: string}
      • 返回:无要求
    • /user/change-password/action:验证 token 的真伪,并根据 token 中的用户信息在数据库中修改密码
      • 请求方法:POST
      • 参数:{token: string, newPassword: string}
      • 返回:无要求
  • “痕迹抹除”:我们虽然可以新建用户和上传文件,但却不可以删除用户或删除文件,这有时会很尴尬。实现这个功能需要两个路由

    • /user/delete:删除用户及其所有记录(注:由于外键级联删除,我们只需要在数据库中删除用户记录即可)
      • 请求方法:GET
      • 参数:无(但有 Authorization 请求头)
      • 返回:无要求
    • /file/delete:删除某个文件
      • 请求方法:POST
      • 参数:{room: uuid, filename: string}
      • 返回:无要求

提交方式

见 README 作业提交 部分

负责人

2025年

讲师:
微信/邮箱:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions