【问题标题】:Diferentiate user not found from wrong credentials将未找到的用户与错误的凭据区分开来
【发布时间】:2017-05-15 12:52:36
【问题描述】:

在调用loginWithPassword 时,我在两种情况下都收到代码 403 的错误:用户不存在和密码错误。我知道他们的消息/原因是不同的,但我认为与字符串进行比较不是一个好习惯。有没有不同的方法来区分这些情况? 更新使用accounts-password

【问题讨论】:

  • 只是猜测,但框架可能会给出相同的响应,因为如果您告诉人们密码错误,他们可以使用错误登录名和错误密码之间的差异来发现网站的有效用户。
  • 你最后是怎么处理这个案子的?

标签: meteor meteor-accounts


【解决方案1】:

除了检查错误描述字符串(这就是它的用途)之外,没有真正的区分方法。

您始终可以在服务器端实现自己的机制(例如,方法),但默认的会发送一个数字错误代码(通常对应于 HTTP 代码 - 在本例中为 403 forbidden),并附带一个字符串.

他们have not changed recently 并且依赖他们是相当安全的,特别是如果它不是关键任务。

【讨论】:

    【解决方案2】:

    您可以实现一个方法来检查用户是否存在,然后在登录尝试失败后调用它。如果用户存在,那么您可以显示密码错误警告。

    您甚至可以在输入密码之前检查是否存在,如果找到用户,则在用户名字段旁边打一个绿色复选标记,否则打一个红色 X。

    有很多方法可以做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 2020-03-02
      • 2014-04-10
      • 1970-01-01
      相关资源
      最近更新 更多