我有一个带有用户名字段的注册HTML表单,我想针对注册的用户名进行检查以确保唯一性。我考虑向 api / users / :用户名 发出 GET 请求,如果它返回200,请考虑404,如果404认为可用。
由于我会在每次请求时返回实际用户(当输入字段发生变化时会发生这种情况),这对我正在尝试做的事情是否有些过分?如果是这样,你们会提出什么选择。
答案 0 :(得分:1)
发出HEAD请求并获取标题。
答案 1 :(得分:1)
使用200/404公开api/users/username
意味着拥有患者计算机的任何人都可以枚举系统中的有效用户名。这可能是一个安全问题,具体取决于您的应用程序。在这种情况下,在跳跃之前不看起来往往更好(这也解决了“两个用户同时要求同一个名字”的问题)。为此,POST一个新用户并在那时处理冲突(如果有问题,409是一个很好的状态代码)。有些应用程序甚至为用户名获取添加了一个额外的步骤,类似于音乐会门票预订,您可以获得资源上的软锁定,然后在单独的步骤中进行确认,并在一段时间不活动后自动回滚。