# 作业内容 我们目前实现的路由还很不完善,请选择以下需求之一实现并测试功能 提示: 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 [作业提交](https://github.com/eesast/web-workshop/blob/main/README.md#%E4%BD%9C%E4%B8%9A%E6%8F%90%E4%BA%A4) 部分 # 负责人 ## 2025年 讲师: 微信/邮箱:
作业内容
我们目前实现的路由还很不完善,请选择以下需求之一实现并测试功能
提示:
”忘记密码?”:对于用户名为邮箱的用户,允许其通过密码重置邮件来修改密码,共需要实现两个路由
/user/change-password/request:发送一封含有重置密码链接的邮件到用户名所在的邮箱地址,链接中需要包括一个使用 JWT 将用户信息签名的 token(来识别和验证身份)POST{username: string}/user/change-password/action:验证 token 的真伪,并根据 token 中的用户信息在数据库中修改密码POST{token: string, newPassword: string}“痕迹抹除”:我们虽然可以新建用户和上传文件,但却不可以删除用户或删除文件,这有时会很尴尬。实现这个功能需要两个路由
/user/delete:删除用户及其所有记录(注:由于外键级联删除,我们只需要在数据库中删除用户记录即可)GET/file/delete:删除某个文件POST{room: uuid, filename: string}提交方式
见 README 作业提交 部分
负责人
2025年
讲师:
微信/邮箱: