rest - REST API 用户资源及其密码
问题描述
我仍在学习 REST API 原则,而这一点仍然让我感到困惑。用户资源中的密码是私有的,当然不能放在响应中,而有时我们需要获取公开的用户数据(例如,当有人看到别人的用户页面时)。我们如何根据 REST API 原则处理这个问题?我应该在发送之前删除响应中的密码吗?
解决方案
是的,您不应返回密码作为响应。我建议你应该创建两个 DTO
- UserInputDTO:这包含密码和其他值
- UserOutputDTO:这里只有对输出有用的字段,我们可以排除密码字段和与您的内部实现相关的字段。
如果您的输入和输出看起来相同,那么您可以JsonIgnore
在密码字段上添加注释。
如果通过删除您的意思是设置它,null
那么用户仍然可以看到 fieldname password
,并且如果您在任何时候忘记将其设置为 null 那么这将是一个安全问题。要解决此问题,您可以使用JsonIgnore
注解。
推荐阅读
- ms-access - 如何为 DoCmd.TransferText 指定当前用户桌面
- sap - Change the name of Page N of M in Crystal Report
- javascript - 我将顶部导航宽度设置为 0 以隐藏菜单,但为什么每个菜单链接仍然存在?
- html - 链接悬停时无法使图像填充背景并保持纵横比
- javascript - Facebook 可以提供聊天 API(Messenger)吗?
- c++ - 使用对
或字符串作为 map<> 键,哪个更有效? - java - Unwrap the array type of data firestore query returns
- java - JAVA_HOME 设置为无效目录 - ionic
- django - Django Foreign Key model cant display in view JSON
- jquery - ASP.net 按钮禁用几秒钟并同时运行服务器代码